Ho risolto, il principio di base è l'importazione di nodi, che con PHP 4 venivano clonati.
Con PHP 5 invece c'è il metodo importNode.
Posto il principio di base se dovesse servire a qualcuno:
Codice PHP:
<?php
$XML = '<?xml version="1.0"?>
<books>
<item>First book</item>
<item>Second book</item>
<code>23</code>
<company>Michela</company>
</books>';
$doc1 = new DOMdocument;
$doc1->loadXML($XML);
$item = $doc1->getElementsByTagName("item")->item(0);
$doc2 = new DOMdocument;
// true: import all nodes with childrens; false: only the specified node;
$importedElement = $doc2->importNode($item, true);
$doc2->appendChild($importedElement);
$output = $doc2->saveXML($doc2);
echo "[b]DOMDocument->importNode example[/b]
";
echo "Primo documento:
".htmlentities($doc1->saveXML($doc1))."<hr />";
echo "Secondo documento con importazione di alcuni elementi del primo:
".htmlentities($doc2->saveXML($doc2))."<hr />";
?>
La stessa soluzione, inserita nella classe, risolve il mio problema.