php - SimpleXML::addChild() can't add line break when output to a xml -


  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"? & Gt; & lt; आइटम & gt; & Lt; item & gt; शीर्षक & gt; शीर्षक 3 & lt; / title & gt; & lt; desc & gt; यह कुछ desc3 & lt; / desc & gt; & lt; / item & gt; & lt; / items & gt;  

आउटपुट के लिए एक्सएमएल () के रूप में उपयोग करते समय प्रत्येक नोड तत्व के बीच कोई लाइन ब्रेक नहीं है?

आउटपुट को कैसे बनाने के लिए फ़ाइल को लाइन ब्रेक प्रत्येक एक्सएमएल तत्वों को खोलने और बंद करने वाला टैग जिसमें बच्चे तत्व नोड्स शामिल हैं:

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"? & Gt; & LT; आइटम & gt; & LT; आइटम & gt; & Lt; title & gt; title3 & lt; / title & gt; & Lt; desc & gt; यह कुछ desc3 & lt; / desc & gt; & Lt; / मद & gt; & Lt; / आइटम & gt;  SimpleXML  एक्सटेंशन आउटपुट को प्रारूपित करने के लिए सीमित है,  

DOMDocument :: $ preserveWhiteSpace और DOMDocument :: $ formatOutput का उपयोग करने के लिए फ़ॉर्मेटिंग्स को नियंत्रित करने के लिए:

  $ Doc = नया DOMDocument (); $ Doc- & gt; संरक्षित व्हाईटस्पेस = गलत; $ Doc- & gt; formatOutput = true; $ डॉक्टर & gt; loadXML ($ स्ट्रिंग); गूंज $ doc- & gt; saveXML ();  

यह लाइनब्रेक के साथ एक अच्छी तरह से इंडेंटेड एक्सएमएल का उत्पादन करेगा जहां आपने उनसे पूछा है:

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = " utf-8 "& gt; & LT; आइटम & gt; & LT; आइटम & gt; & Lt; title & gt; title3 & lt; / title & gt; & Lt; desc & gt; यह कुछ desc3 & lt; / desc & gt; & Lt; / मद & gt; & LT; खाली / & gt; & Lt; / आइटम & gt;  

यदि आपको इंडेंट को हेरफेर करने की ज़रूरत है, तो आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं जो एक संबंधित प्रश्न और उत्तर में उल्लिखित है:

यदि आप उस पद्धति का उपयोग नहीं करना चाहते हैं, तो आप सिंपलएक्सएमएल से कुछ और स्थानांतरित कर सकते हैं और तब XMLWriter के लिए जो मुद्रित XML के इंडेंटेशन () सेट करने के लिए एक विधि प्रदान करता है। XMLWriter के साथ लिखने के लिए आपको अपने एक्सएमएल मॉडल का अंतरिम प्रतिनिधित्व प्राप्त करना होगा, हालांकि यह तुच्छ नहीं दिखता।


Comments