php - adding previous top level node inside a new top level node SimpleXML -


मेरे पास इस तरह की एक XML फ़ाइल है:

  & lt;? xml संस्करण = "1.0 "& gt; & LT; निर्यात & gt; & LT; config & gt; & Lt; निर्यात किया गया नाम = "परीक्षण" & gt; & LT; मूल्यों & gt; & Lt; नोड नाम = "पीला" / & gt; & Lt; नोड नाम = "हरा" / & gt; & Lt; नोड नाम = "लाल" / & gt; & Lt; / मूल्यों & gt; & Lt; / निर्यात & gt; & Lt; / config & gt; & Lt; / निर्यात & gt;   

मुझे पता है कि SimpleXML के लिए PHP प्रलेखन के बाद एक विशेषता को कैसे जोड़ना

मुझे यकीन नहीं है कि अगर इसके लिए संभव है तो मुझे एक और टैग में लपेट लेना है । उदाहरण के लिए मैं ऊपर बदलना चाहता हूं:

  & lt;? Xml संस्करण = "1.0"? & Gt; & LT; मुख्य & gt; & LT; ग्राहक & gt; johndoe@gmail.com & lt; / cust & gt; & LT; निर्यात & gt; & LT; config & gt; & Lt; निर्यात किया गया नाम = "परीक्षण" & gt; & LT; मूल्यों & gt; & lt; नोड नाम = "पीला" / & gt; & lt; नोड नाम = "हरा" / & gt; & lt; नोड नाम = "लाल" / & gt; & Lt; / मूल्यों & gt; & Lt; / निर्यात & gt; & Lt; / config & gt; & Lt; / निर्यात & gt; & Lt; / मुख्य & gt;   

तो मूल रूप से मैं क्या कर रहा हूँ एक नया शीर्ष स्तरीय नोड बना रहा है जिसे मुख्य कहा जाता है और एक नया विशेषता ग्राहक डालकर एक मान जोड़ रहा है और उसके बाद मुख्य नोड के अंदर पिछले शीर्ष स्तर के नोड निर्यात को जोड़ना ग्राहक विशेषता।

मैं आदर्श रूप से सरल एक्सएमएल का उपयोग करना चाहूंगा, लेकिन मुझे आश्चर्य है कि ऐसा करने का सबसे अच्छा तरीका क्या है, निर्यात से सब कुछ पढ़ा है, और सभी को लूप में पीछे छोड़ दें, यह सबसे अच्छा तरीका है ऐसा करने के लिए या वहाँ सिर्फ सभी एक्सपोर्ट नोड को मुद्रित करने का एक तरीका है, बल्कि पूरे एक्सएमएल को पढ़ना और पाश के माध्यम से और इसे सिर्फ दो नए नोड्स जोड़ने के लिए पुन: निर्माण करने की बजाय?

यह SimpleXML के साथ काम नहीं करता है, लेकिन DOMDocument के साथ, जो एक दस्तावेज़ से दूसरे को नोड्स आयात करने की अनुमति देता है सौभाग्य से सरल एक्ज़्लॅक्स PHP में केवल डोमड्यूकास्ट पर एक मुखौटा है और नोड्स को सरल एक्सएमएल से डीओएम तक आयात किया जा सकता है और फिर डोम के भीतर एक दस्तावेज़ से दूसरे में आयात किया जा सकता है:

  $ xml = नया SimpleXMLElement (& lt ; xml संस्करण = "1.0"? & gt; निर्यात & gt; & lt; config & gt; & lt; निर्यात किया गया नाम = "परीक्षण" & gt; & lt; मूल्य & gt; & lt; नोड नाम = "पीला" / & gt; & lt; नोड नाम = " हरा "/ & gt; & lt; नोड नाम =" लाल "/> gt; & lt; / values ​​& gt; & lt; / निर्यात किया गया & gt; & lt; / config & gt; & lt; / export & gt; '); $ target = नया SimpleXMlelement ('& lt;? xml संस्करण = "1.0"? & lt; मुख्य & gt; & lt; cust & gt; johndoe@gmail.com & lt; / cust & gt; & lt; / main & gt;'); $ cust = dom_import_simplexml ($ target- & gt; cust); $ cust- & gt; parentNode- & gt; एपेंड चाइल्ड ($ cust- & gt; स्वामी दस्तावेज़- & gt; आयातनोड (dom_import_simplexml ($ xml), सच है)); $ Target- & gt; asXML ( 'php: // उत्पादन');   

आउटपुट:

  & lt;? Xml संस्करण = "1.0"? & Gt; & LT; मुख्य & gt; & LT; ग्राहक & gt; johndoe@gmail.com & lt; / cust & gt; & LT; निर्यात & gt; & LT; config & gt; & Lt; निर्यात किया गया नाम = "परीक्षण" & gt; & LT; मूल्यों & gt; & lt; नोड नाम = "पीला" / & gt; & lt; नोड नाम = "हरा" / & gt; & lt; नोड नाम = "लाल" / & gt; & Lt; / मूल्यों & gt; & Lt; / निर्यात & gt; & Lt; / config & gt; & Lt; / निर्यात & gt; & lt; / मुख्य & gt;    

Comments

Popular posts from this blog

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -

jasper reports - How to center align barcode using jasperreports and barcode4j -

django - CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False -