xml - PHP SimpleXML: insert node at certain position -
का कहना है कि मेरे पास एक्सएमएल है:
& lt; root & gt; & Lt; नोडए / & gt; & Lt; नोडए / & gt; & Lt; नोडए / & gt; & Lt; nodeC / & gt; & Lt; nodeC / & gt; & Lt; nodeC / & gt; & Lt; / जड़ & gt;
मैं as और Cs के बीच "nodeB" कैसे सम्मिलित कर सकता हूं? PHP में, अधिमानतः SimpleXML के माध्यम से? जैसे:
& lt; रूट & gt; & Lt; नोडए / & gt; & Lt; नोडए / & gt; & Lt; नोडए / & gt; & Lt; nodeB / & gt; & Lt; nodeC / & gt; & Lt; nodeC / & gt; & Lt; nodeC / & gt; & Lt; / जड़ & gt;
निम्नलिखित कुछ अन्य SimpleXMLElement के बाद एक नया SimpleXMLElement सम्मिलित करने के लिए एक फ़ंक्शन है। चूंकि यह सिंपलएक्सएमएल के साथ सीधा संभव नहीं है, इसलिए यह काम पाने के लिए कुछ वर्गों / तरीकों का इस्तेमाल करता है।
फ़ंक्शन सिम्प्लेक्सएमएलएनिर्ट_after (सरल एक्सएमएलमेंट $ डालें, सरल एक्सएमएलमेंट $ लक्ष्य) {$ Target_dom = dom_import_simplexml ($ लक्ष्य); $ Insert_dom = $ target_dom- & gt; स्वामी दस्तावेज़- & gt; आयातनोड (dom_import_simplexml ($ सम्मिलित करें), सच है); यदि ($ target_dom- & gt; अगला सिबलिंग) {return $ target_dom- & gt; parentNode- & gt; सम्मिलित करें ($ insert_dom, $ target_dom- & gt; अगले सिबलिंग); } और {वापसी $ target_dom- & gt; parentNode- & gt; एपेंड चाइल्ड ($ insert_dom); }}
और इसका इस्तेमाल कैसे किया जा सकता है (आपके प्रश्न के लिए विशिष्ट):
$ sxe = new SimpleXMLElement ('& lt; root & gt; & LT; nodeA / & gt; & lt; nodeA / & gt; & lt; nodeA / & gt; & lt; nodeC / & gt; & lt; nodeC / & gt; & lt; nodeC / & gt; & lt; / जड़ & gt; '); // नया तत्व डालने के लिए $ insert = नया SimpleXMlelement ("& lt; nodeB / & gt;"); // अंतिम नोड ए तत्व प्राप्त करें $ target = current ($ sxe-> xpath ('// nodeA [last ()]')); // अंतिम नोड के बाद नया तत्व सम्मिलित करें simplexml_insert_after ($ डालें, $ लक्ष्य); // नए एक्सएमएल पर क्लिक करें प्रतिध्वनि $ sxe- & gt; asXML ();
यदि आप कैसे यह काम करता है (कोड काफी सरल है लेकिन विदेशी अवधारणाओं में शामिल हो सकते हैं) की व्याख्या की आवश्यकता है, तो बस पूछें।
< / div>
Comments
Post a Comment