2010-08-16 56 views
7

我需要將SimpleXML對象轉換爲DOMDocument,才能與DOMXPath一起使用。我需要DOMXPath,以便我可以使用它的registerPHPFunctions方法。這可以做到嗎?將SimpleXML轉換爲DOMDocument,而不是DOMElement

With dom_import_simplexml我收到DOMElement而不是DOMDocument

+2

文件聽起來像你不再做簡單的* * XML操作,所以你可能要考慮完全切換到DOM。 – Gordon 2010-08-16 09:08:48

+1

我是,只是想說服自己這是值得的麻煩。 – Znarkus 2010-08-16 09:22:47

回答

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

謝謝!注意:'loadXML()'方法返回一個布爾值,並將XML加載到'$ dom'。有了這個解決方案,我將失去與原始簡單xml對象的連接,對吧?所以說我稍後刪除DOME元素,這不會影響簡單的XML。 – Znarkus 2010-08-16 09:26:47

+1

代碼已更正。您仍然可以訪問$ sxml作爲您的simplexml對象。 $ dom和$ sxml是相互獨立的。無論您在$ dom中做出什麼修改都不會影響$ sxml。如果你想要與上面的代碼相反: '$ sxml = simplexml_load_string($ dom-> saveXML());' – stillstanding 2010-08-16 09:33:38

+1

實際上,當我用'dom_import_simplexml'進行轉換時,它保留了與簡單xml的連接。如果我刪除了一個dom節點,這個變化會回到簡單的xml。 – Znarkus 2010-08-16 09:41:56

相關問題