2010-12-23 17 views
11

मैं PHP 5 के अंतर्निहित SimpleXMLElement कक्षा का उपयोग कर एक XML दस्तावेज़ (AJAX के लिए) बनाने के लिए एक PHP दस्तावेज़ का उपयोग करने का प्रयास कर रहा हूं। मैं एक रिक्त स्लेट के साथ शुरू करना चाहता हूं और तत्व द्वारा एक्सएमएल तत्व बनाना चाहता हूं, लेकिन मुझे XML कोड के कुछ मौजूदा टुकड़े से शुरू किए बिना SimpleXMLElement बनाने का कोई तरीका नहीं मिला है। मैं SimpleXMLElement कन्स्ट्रक्टर को रिक्त स्ट्रिंग ("") में सफलतापूर्वक पास करने में सक्षम नहीं था, इसलिए वर्तमान में मैं बाहरी टैग के लिए एक्सएमएल में जा रहा हूं, और फिर वहां से निर्माण कर रहा हूं। यहां मेरा कोड है:मैं PHP में खाली/खाली SimpleXMLElement कैसे बना सकता हूं?

// Start with a "blank" XML document. 
$xml = new SimpleXMLElement("<feature></feature>"); 

// Add various children and attributes to the main tag. 
$xml->addAttribute("id", $id); 
$xml->addChild("title", $feature['title']); 
$xml->addChild("summary", $feature['summary']); 
// ... 

// After the document has been constructed, echo out the XML. 
echo $xml->asXML(); 

क्या ऐसा करने का कोई क्लीनर तरीका है?

+1

आप शायद DOMDocument का उपयोग कर तत्व बना सकते हैं और इसे SimpleXML में परिवर्तित कर सकते हैं, लेकिन यह भी गड़बड़ है ... – derekerdmann

+2

सुराग कक्षा के नाम में है, आप SimpleXML * तत्व * बना रहे हैं। क्लीनर होने के नाते, 'simplexml_import_dom()' अनावश्यक है। इसके अलावा, यदि आप एकल तत्व/विशेषताओं द्वारा दस्तावेज़ बनाना चाहते हैं तो आपके पास क्या ठीक है। – salathe

+0

'badxml_import_dom()' चीज़ पर मेरा बुरा। यह पुराना कोड था। – andrewtc

उत्तर

5

salathe जैसा कि बताया जा:

सुराग वर्ग के नाम में है, तो आप SimpleXML बना रहे हैं तत्वों

अब मुझे समझ में आता है कि SimpleXMLElement "खाली" नहीं हो सकता है। यह एक वैध एक्सएमएल तत्व होना चाहिए, जिसमें एक टैग नाम और खोलने और बंद टैग होना आवश्यक है (उदा। <feature></feature> या <body></body>)।

ऐसा लगता है कि SimpleXMLElement निर्माण, XML दस्तावेज़ों के बजाय पार्सिंग के लिए बनाया गया था। ऐसा कहा जा रहा है, मुझे स्क्रैच से दस्तावेज़ बनाने में बहुत आसान लगा। वर्ग स्वचालित रूप से बहुत अच्छी चीजें करता है, जिसमें सब कुछ कॉम्पैक्ट रखने और शीर्ष पर XML संस्करण संख्या को आउटपुट करने सहित (<?xml version="1.0"?>) शामिल है।

मैं ऐसे किसी भी व्यक्ति के लिए इस दृष्टिकोण की अनुशंसा करता हूं जिसे छोटे XML दस्तावेज़ों का निर्माण करने के लिए PHP का उपयोग करने की आवश्यकता है। यह टैग को किसी भी दिन स्ट्रिंग के रूप में गूंजता है।

आपकी टिप्पणियों के लिए, सभी को धन्यवाद!

+0

'टैग को प्रतिबिंबित करना'? मुझे मत बताओ कि आपने यह किया है :) –

+0

@CamiloMartin यह एक आकर्षण की तरह काम करता है – mandza

संबंधित मुद्दे