這裡沒有提到的是,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