Copiando nós entre documentos.
<?php
$orgdoc = new DOMDocument;
$orgdoc->loadXML("<raiz><elemento><filho>texto no filho</filho></elemento></raiz>");
// O nó que queremos importar para um novo documento
$node = $orgdoc->getElementsByTagName("elemento")->item(0);
// Crie um novo documento
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;
// Adicione alguma marcação
$newdoc->loadXML("<raiz><algumelemento>texto em algum elemento</algumelemento></raiz>");
echo "O 'novo documento' antes de copiar nós nele:\n";
echo $newdoc->saveXML();
// Importe o nó, e todos os seus filhos, para o documento
$node = $newdoc->importNode($node, true);
// E então acrescente-o ao nó "<raiz>"
$newdoc->documentElement->appendChild($node);
echo "\nO 'novo documento' após copiar nós nele:\n";
echo $newdoc->saveXML();
?>
O exemplo acima produzirá:
O 'novo documento' antes de copiar nós nele:
<?xml version="1.0"?>
<raiz>
<algumelemento>texto em algum elemento</algumelemento>
</raiz>
O 'novo documento' após copiar nós nele:
<?xml version="1.0"?>
<raiz>
<algumelemento>texto em algum elemento</algumelemento>
<elemento>
<filho>texto no filho</filho>
</elemento>
</raiz>