में DOMDocument के साथ इंडेंटेशन मैं नई XML फ़ाइल उत्पन्न करने के लिए DOMDocument
का उपयोग कर रहा हूं और मैं फ़ाइल के आउटपुट को अच्छी तरह से इंडेंट करना चाहता हूं ताकि मानव पाठक के लिए इसका पालन करना आसान हो।PHP
उदाहरण के लिए, जब DOMDocument
आउटपुट इस डेटा:
<?xml version="1.0"?>
<this attr="that"><foo>lkjalksjdlakjdlkasd</foo><foo>lkjlkasjlkajklajslk</foo></this>
मैं एक्सएमएल फ़ाइल होना चाहते हैं:
<?xml version="1.0"?>
<this attr="that">
<foo>lkjalksjdlakjdlkasd</foo>
<foo>lkjlkasjlkajklajslk</foo>
</this>
मैं अधिक के लिए उत्तर की तलाश में खोज कर रहा है, और सब कुछ है कि मैं ऐसा लगता है कि इस तरह सफेद जगह को नियंत्रित करने का प्रयास करने के लिए कहा जाता है:
$foo = new DOMDocument();
$foo->preserveWhiteSpace = false;
$foo->formatOutput = true;
लेकिन ऐसा कुछ नहीं लगता है। शायद एक्सएमएल पढ़ने पर यह केवल काम करता है? ध्यान रखें मैं नए दस्तावेज़ लिखने की कोशिश कर रहा हूं।
क्या ऐसा करने के लिए DOMDocument
पर कोई भी अंतर्निहित है? या एक ऐसा कार्य जो इसे आसानी से पूरा कर सकता है?
मुझे यकीन नहीं है कि सवाल क्या है। जो कोड आप दिखाते हैं वह वह आउटपुट देगा जो आप मांग रहे हैं। सबूत: http://codepad.org/4UGyRspx और http://codepad.org/bLTOFQrp - क्या आप इंडेंटेशन स्तर के बारे में पूछ रहे हैं, उदा। इस्तेमाल की गई रिक्त स्थान की संख्या? – Gordon
यहां एक अच्छा सीधा फ़ंक्शन (नियमित अभिव्यक्तियों के आधार पर) है: [PHP के साथ एक्सएमएल प्रारूप] (http://recurser.com/articles/2007/04/05/format-xml-with-php/) – Tomalak
संबंधित जब तक इंडेंटेशन का संबंध है: [preg_replace (कोई कॉलबैक) के साथ इंडेंटेशन को परिवर्तित करना] (http://stackoverflow.com/questions/8616594/converting-indentation-with-preg-replace-no-callback) – hakre