2010-08-16 15 views
7

मुझे ऑब्जेक्ट को DOMDocument पर DOMXPath के साथ उपयोग करने की आवश्यकता है। मुझे डोमैक्सपाथ चाहिए ताकि मैं इसकी registerPHPFunctions विधि का उपयोग कर सकूं। क्या यह किया जा सकता है?SimpleXML को DOMDocument में कनवर्ट करें, DOMElement

dom_import_simplexml के साथ मुझे DOMElement मिलता है, DOMDocument नहीं।

+2

से दस्तावेज़ लाने ताकि आप पूरी तरह से डोम का उपयोग करने जा विचार करना चाह सकते कर सकते हैं। – Gordon

+1

मैं बस खुद को मनाने की कोशिश कर रहा हूं, यह मुसीबत के लायक है। – Znarkus

उत्तर

11

आप की तरह आप अब * सरल * एक्सएमएल संचालन कर रहे हैं लगता है $anyDOMNode->ownerDocument

+0

धन्यवाद! मैंने इसकी खोज की, लेकिन इसे नहीं मिला। ठीक वही जो मेरे द्वारा खोजा जा रहा था! – Znarkus

1
$dom=new DOMDocument; 
$dom->loadXML($sxml->asXML()); 
+0

धन्यवाद! बस एक नोट: 'loadXML()' विधि एक बुलियन लौटाती है, और एक्सएमएल को '$ dom' तक लोड करती है। इस समाधान के साथ मैं मूल सरल एक्सएमएल ऑब्जेक्ट से कनेक्शन खो देता हूं, है ना? तो कहें कि मैं बाद में DOMElements को हटा देता हूं, यह सरल xml को प्रभावित नहीं करेगा। – Znarkus

+1

कोड को सही किया गया। आपके पास अभी भी $ sxml तक पहुंच है जो आपके सरल xml ऑब्जेक्ट के रूप में प्रदर्शित है। $ dom और $ sxml एक-दूसरे से स्वतंत्र हैं। $ dom में जो भी परिवर्तन आप करते हैं वह $ sxml को प्रभावित नहीं करेगा। यदि आप उपर्युक्त कोड के विपरीत चाहते हैं: '$ sxml = simplexml_load_string ($ dom-> saveXML());' – stillstanding

+1

दरअसल, जब मैं 'dom_import_simplexml' के साथ परिवर्तित कर रहा हूं, तो यह सरल xml से कनेक्शन को संरक्षित करता है। यदि मैं एक डोम नोड को हटा देता हूं, तो यह परिवर्तन वापस सरल xml पर जाता है। – Znarkus

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