2010-01-10 11 views
27

मुझे एक नई एक्सएमएल फाइल बनाने और अपने सर्वर पर लिखने की जरूरत है। इसलिए, मैं एक नई एक्सएमएल फ़ाइल बनाने का सबसे अच्छा तरीका ढूंढ रहा हूं, इसे कुछ बेस नोड्स लिखें, इसे सेव करें। फिर इसे फिर से खोलें और अधिक डेटा लिखें।नई एक्सएमएल फाइल बनाएं और डेटा लिखें?

मैं फ़ाइल को सहेजने के लिए file_put_contents() का उपयोग कर रहा हूं। लेकिन, एक नया निर्माण करने और कुछ बेस नोड्स लिखने के लिए मुझे सबसे अच्छी विधि का यकीन नहीं है।

विचार?

उत्तर

58

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

$xml = new DOMDocument(); 
$xml_album = $xml->createElement("Album"); 
$xml_track = $xml->createElement("Track"); 
$xml_album->appendChild($xml_track); 
$xml->appendChild($xml_album); 

$xml->save("/tmp/test.xml"); 

पुनः खोलने के लिए और लिखने:

$xml = new DOMDocument(); 
$xml->load('/tmp/test.xml'); 
$nodes = $xml->getElementsByTagName('Album') ; 
if ($nodes->length > 0) { 
    //insert some stuff using appendChild() 
} 

//re-save 
$xml->save("/tmp/test.xml"); 
+0

मैं अपने दस्तावेज़ में XML संरचना रहते हो, बजाय सब कुछ एक पंक्ति में लिखा जा रहा? –

+4

DOMDocument ऑब्जेक्ट पर "formatOutput" प्रॉपर्टी सेट करें: '$ xml-> formatOutput = true'। http://ca.php.net/manual/en/class.domdocument.php#domdocument.props.formatoutput – zombat

+0

थोड़ा देर हो चुकी है लेकिन अगर कोई ट्यूटोरियल पढ़ना चाहता है तो यहां मिल सकता है। https://programmerblog.net/how-to-generate-xml-files-using-php/ –

13

पीएचपी XML Manipulation के लिए कई पुस्तकालयों है।

Document Object Model (डीओएम) दृष्टिकोण (जो एक डब्ल्यू 3 सी मानक है और यदि आप इसे अन्य ब्राउज़र जैसे वेब ब्राउज़र या जावा इत्यादि में इस्तेमाल करते हैं तो परिचित होना चाहिए)। के रूप में

<?php 
    $doc = new DOMDocument(); 
    $ele = $doc->createElement('Root'); 
    $ele->nodeValue = 'Hello XML World'; 
    $doc->appendChild($ele); 
    $doc->save('MyXmlFile.xml'); 
?> 

इस प्रकार आप दस्तावेज़ बनाने की अनुमति देता है यहां तक ​​कि अगर आप डोम के पार से पहले नहीं आए हैं, उसमें कुछ समय निवेश के रूप में मॉडल कई भाषाओं/वातावरण में प्रयोग किया जाता है लायक है।

2

FluidXML के साथ आप एक XML दस्तावेज़ को बहुत आसानी से उत्पन्न और स्टोर कर सकते हैं।

$doc = fluidxml(); 

$doc->add('Album', true) 
     ->add('Track', 'Track Title'); 

$doc->save('album.xml'); 

फ़ाइल से दस्तावेज़ लोड करना उतना ही सरल है।

$doc = fluidify('album.xml'); 

$doc->query('//Track') 
     ->attr('id', 123); 

https://github.com/servo-php/fluidxml

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