这里没有提到的是,DOMNode::appendChild() 也可以用来将现有节点移动到 DOMDocument 的另一个部分,例如
<?php
$doc = new DOMDocument();
$doc->loadXML("<foobar><bar/><foo/></foobar>");
$bar = $doc->documentElement->firstChild;
$foo = $doc->documentElement->lastChild;
$foo->appendChild($bar);
print $doc->saveXML();
?>
这将生成
<?xml version="1.0"?>
<foobar><foo><bar/></foo></foobar>
请注意,节点 "<foo/>" 和 "<bar/>" 是兄弟节点,即 "<foobar>" 的第一个和最后一个子节点,但使用 appendChild(),我们能够移动 "<bar/>",使其成为 "<foo/>" 的子节点。
这可以省去您在将 "<bar/>" 作为 "<foo/>" 的子节点追加之前,执行 DOMNode::removeChild($bar) 以删除 "<bar/>" 的麻烦。
Kris Dover