这里没有提到的是,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