这是一个替换节点的简单示例
让我们这样定义 XML
<?php
$xml = <<<XML
<?xml version="1.0"?>
<root>
<parent>
<child>bar</child>
<child>foo</child>
</parent>
</root>
XML;
?>
如果我们想替换整个 <parent> 节点,我们可以执行类似的操作
<?php
$parent = new DomDocument;
$parent_node = $parent ->createElement('parent');
$parent_node->appendChild($parent->createElement('child', 'somevalue'));
$parent_node->appendChild($parent->createElement('child', 'anothervalue'));
$parent->appendChild($parent_node);
?>
接下来,我们需要找到旧节点
<?php
$dom = new DomDocument;
$dom->loadXML($xml);
$xpath = new DOMXpath($dom);
$nodelist = $xpath->query('/root/parent');
$oldnode = $nodelist->item(0);
?>
然后我们导入并替换新节点
<?php
$newnode = $dom->importNode($parent->documentElement, true);
$oldnode->parentNode->replaceChild($newnode, $oldnode);
echo $dom->saveXML();
?>
我们的新节点已成功导入
<?xml version="1.0"?>
<root>
<parent><child>somevalue</child><child>anothervalue</child></parent>
</root>