सहेजें क्या यह मौजूदा xml फ़ाइल में नया नोड डालने के लिए php के XMLWriter का उपयोग करना संभव है, और फिर फ़ाइल को सहेजें। यह मेरे लिए बहुत अधिक फायदेमंद होगा जो वास्तव में एक एक्सएम फाइल बनाते हैं जब भी मैं एक एक्सएमएल फ़ाइल अद्यतन करना चाहता हूं।PHP मौजूदा xml फ़ाइल में नोड जोड़ें और
उत्तर
आप PHP के Simple XML का उपयोग कर सकते हैं। आपको फ़ाइल सामग्री को पढ़ना है, सरल एक्सएमएल के साथ नोड जोड़ें और सामग्री को वापस लिखें।
मैं इसके बजाय simplexml
का उपयोग करूंगा। मैं एक अंग पर बाहर जा रहा हूं और यह मान रहा हूं कि यदि आपके पास एक्सएमएल लेखक है तो आपके पास सरलxml भी है।
चलो, देखते हैं एक नोड को जोड़ने के लिए, के एक बहुत ही सरल मान लें xml फ़ाइल (इसे पाने के?):
<desserts>
<cakes>
<cake>chocolate</cake>
<cake>birthday</cake>
</cakes>
<pies>
<pie>apple</pie>
<pie>lemon</pie>
</pies>
</desserts>
यह एक फ़ाइल में है, तो और आप एक नया पाई, तो आप हैं जोड़ना चाहते हैं कार्य करें:
$desserts = new SimpleXMLElement;
$desserts->loadfile("desserts.xml");
$desserts->pies->addChild("pie","pecan");
यह भी बहुत कुछ इस से परिष्कृत, निश्चित रूप से हो सकता है। लेकिन एक बार जब आप इसे लटका लेंगे, तो यह बहुत उपयोगी होगा।
सामान्य समस्या यह है कि एक अच्छी तरह से गठित XML दस्तावेज़ में केवल एक मूल तत्व होना चाहिए। इसका मतलब है कि अंदर एक नया तत्व जोड़ने में सक्षम होने के लिए आपको पूरे दस्तावेज़ पेड़ में पढ़ना/विश्लेषण करना होगा। इसलिए यहां सभी सरल सुझाव सुझाव।
XMLWriter डेटा की एक्सएमएल स्ट्रीम को बहुत कुशलता से लिखने के लिए है, लेकिन मौजूदा फ़ाइलों को संशोधित नहीं कर सकता (उन्हें पहले पढ़ने के बिना)।
इस धागे को perlmonks.com पर देखें जहां XML लॉग फ़ाइलों पर चर्चा की गई है। विशेष रूप से दिलचस्प "मिरोड" द्वारा टिप्पणी है जो दिखाती है कि एक अच्छी तरह से बनाई गई XML फ़ाइल कैसे है और अभी भी किसी दस्तावेज़ में नोड्स जोड़ने में सक्षम है। समाधान मनमानी नोड्स को एक अलग फ़ाइल में रखना है (जो गड़बड़ मूल तत्व के कारण स्वयं पर अच्छी तरह से गठित नहीं है) और फ़ाइल को बाहरी इकाई के रूप में संदर्भित करता है। आपके मामले में, आप उस फ़ाइल को लिखेंगे जो संलग्न करने के लिए फ़ाइल खोलते समय मानक PHP फॉपेन, fwrite fclose फ़ंक्शन के साथ एक इकाई के रूप में शामिल किया जाएगा।
$xml_doc = new DomDocument;
$xml_doc->Load('yourfilename.xml');
$desserts = $xml_doc->getElementsByTagName('desserts')->item(0);
$burger =$xml_doc->createElement('burger');
$desserts->appendChild($burger);
$done = $xml_doc->save("yourfilename.xml");
यह काम पूरी तरह से अच्छा है। और आप बर्गर में विशेषताओं को भी जोड़ सकते हैं
- 1. XmlSerializer द्वारा उत्पादित XML में xsl स्टाइलशीट नोड कैसे जोड़ें?
- 2. xml फ़ाइल
- 3. PHP फ़ाइल के साथ XML फ़ाइल में डेटा डालने
- 4. नोकोगिरी नोड में विशेषता कैसे जोड़ें?
- 5. एक xml नोड
- 6. किसी XML नोड
- 7. Azure - BLOB स्टोरेज में मौजूदा xml फ़ाइल को अपडेट करना
- 8. PHP स्ट्रिंग को XML फ़ाइल
- 9. बदलें एक्सएमएल नोड तत्व मूल्य और फ़ाइल
- 10. PHP में मौजूदा कक्षा में कोई विधि कैसे जोड़ें?
- 11. मौजूदा QTableWidget में नई पंक्ति कैसे जोड़ें?
- 12. निर्यात xml में DOCTYPE को कैसे जोड़ें?
- 13. एक XML नोड मूल्य
- 14. एलएक्सएमएल मौजूदा xml
- 15. सी #: संशोधित एक xml नोड
- 16. फ़ाइल में लाइनें जोड़ें
- 17. आईफोन - मौजूदा परियोजना में कोर डेटा जोड़ें?
- 18. एक एसडी कार्ड से किसी मौजूदा XML फ़ाइल के नोड के मान को कैसे संपादित करें और इसे वापस सहेजें?
- 19. "NodeJs" में XML नोड मानों को पढ़ें
- 20. मौजूदा WAR फ़ाइल
- 21. PHP SimpleXML नोड
- 22. टीएफएस स्रोत नियंत्रण में मौजूदा फ़ोल्डर जोड़ें
- 23. जावा मौजूदा दस्तावेज़ों में XML दस्तावेज़ों को जोड़ रहा है
- 24. XML दस्तावेज़ नोड मानों को कैसे पढ़ और लिखना है?
- 25. xml: PHP
- 26. मैनेशिया क्लस्टर में नोड कैसे जोड़ें?
- 27. नए फ़ाइल नाम के साथ फ़ाइल को सहेजें: मौजूदा फ़ाइल नाम में जोड़ें
- 28. किसी मौजूदा फ़ाइल
- 29. मौजूदा सैस परियोजना में कंपास जोड़ें?
- 30. PHP डोम में चयनित नोड का अगला नोड चुनें?
क्या अधिकांश एक्सएमएल पार्सर इस समाधान पर भरोसा करने के लिए संदर्भ फ़ाइलों को समझने/संभालते हैं? और क्या यह विचार नोड्स के विचार को एक सुंदर सुरक्षित और समझा विचार मान्य नहीं किया जा रहा है? मैं देख सकता था कि यह कैसे होगा, यदि ब्राउजर/क्लाइंट/पार्सर केवल संदर्भ से नीचे की ओर जाता है, लेकिन क्या कोई मौका है कि विकृत संदर्भों के खिलाफ सुरक्षा के लिए इसे पहले पूरे दस्तावेज़ को सत्यापित करने की आवश्यकता होगी? या क्या इसे प्राथमिक xml दस्तावेज़ के संदर्भ में मान्य होना चाहिए? – Anthony
मुझे पता नहीं है कि "अधिकांश" पार्सर्स इकाई विस्तार का समर्थन करते हैं या नहीं, मुझे यह जानने के लिए कई एक्सएमएल पार्सर्स नहीं हैं। मैं ज्यादातर PHP और PHP एक्सएमएल पार्सर (xmllib के चारों ओर एक रैपर) के साथ काम करता हूं। समावेशन के बाद, पूरा दस्तावेज़ अच्छी तरह से गठित होना चाहिए। मैं इसे प्रतिबिंबित करने के लिए अपना उत्तर संपादित करूंगा। – chiborg