我从某个源获取XML字符串。我创建一个DOMDocument对象并将XML字符串加载到其中(使用DOMDocument :: loadXML())。然后,我使用各种方法(例如DOMXPath)浏览XML文档,直到找到所需的节点(当然是DOMNode)。从PHP中的DOMNode创建DOMDocument
这个节点有许多后代,我想取整个节点(及其后代)并从中创建一个新的DOMDocument对象。我不知道如何做到这一点;我尝试创建一个新的DOMDocument并使用DOMDocument :: importNode(),但是这似乎只在DOMDocument已经有一个主文档节点的情况下才起作用,在这种情况下,它会将导入的节点作为主文档节点的子节点追加,这不是我想要的 - 我想让导入的节点成为DOMDocument主节点。
也许有这样做(即一个更简单的方法来提取,我想变成自己的文档中的原始XML的一部分)更简单的方法,但我不知道它。我对DOMDocument相对来说比较新,尽管我已经使用SimpleXMLElement足以让它恼火。
这应该可以工作,但会涉及序列化和重新解析'importNode()'避免的XML代码。 – thomasrutter 2016-06-28 00:32:43