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

时间:2009-06-11 20:46:47

标签: php xml

如果您在PHP中有DOMNode,那么如何获得外部xml(即此元素中的所有XML以及元素本身)?

例如,假设这是结构

<car>
 <tire>Michelin</tire>
 <seats>Leather</seats>
 <type>
   <color>red</color>
   <make>Audi</make>
 </type>
</car>

我有一个指向&lt; type&gt;的指针节点...我想回来

<type>
    <color>red</color>
    <make>Audi</make>
</type>

如果我只是要求提供文字,我会找回“redAudi”。

2 个答案:

答案 0 :(得分:18)

您需要一个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

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

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

答案 1 :(得分:0)

您可以尝试以下方式:

function getInnerXml(DomNode $node){
  $xml = '';
  foreach($node->childNodes as $childNode){
    $xml .= $node->ownerDocument->saveXml($childNode);
  }
  return $xml;
}