在PHP中,如何从DOMNode获取外部XML?

Mic*_*yor 12 php xml

如果你在PHP中有DOMNode,你怎么能得到外部的xml(即这个元素中的所有XML加上元素本身)?

例如,假设这是结构

<car>
 <tire>Michelin</tire>
 <seats>Leather</seats>
 <type>
   <color>red</color>
   <make>Audi</make>
 </type>
</car>
Run Code Online (Sandbox Code Playgroud)

我有一个指向<type>节点的指针...我想回来

<type>
    <color>red</color>
    <make>Audi</make>
</type>
Run Code Online (Sandbox Code Playgroud)

如果我只是要求提供文本,我会回复"redAudi".

roj*_*oca 19

你需要一个DOMDocument:

// If you don't have a document already:
$doc = new DOMDocument('1.0', 'UTF-8');

echo $doc->saveXML($node); // where $node is your DOMNode
Run Code Online (Sandbox Code Playgroud)

检查文档中的DOMDocument :: saveXML以获取更多信息.

当您将DOMNode传递给saveXML()时,您只返回该节点的内容而不是整个文档.


Lud*_*ssi 9

花了一个小时后,我想出了这个(这似乎是最好的解决方案)

$node->ownerDocument->saveXml($node);
Run Code Online (Sandbox Code Playgroud)