Delphi-Quellcode:
// klont den Knoten "movie[id=3]" und speichert ihn in NewNode
//movies := xmlDoc.documentElement.selectNodes('movie'); // nicht verwendet
oldNode := xmlDoc.documentElement.selectSingleNode('
/movieorganizer/movie[id="3"]');
newNode := OldNode.cloneNode(True);
// mit NewNode wird nichts gemacht und es wird am Ende der Prozedur wieder weggeworfen
// ließ einfach mal, was in der OH zu cloneNode (Xmldom.IDOMNode.cloneNode) steht.
Aber du willst ja wohl irgendwas in dieser Richtung haben:
Delphi-Quellcode:
// kopiert Inhalt von 3 nach 5
oldNode := xmlDoc.documentElement.selectSingleNode('/movieorganizer/movie[id="3"]');
newNode := xmlDoc.documentElement.selectSingleNode('/movieorganizer/movie[id="5"]');
for i := 0 to newNode.childNodes.length - 1 do
newNode.appendChild(oldNode.childNodes.item[i].cloneNode(True));
// oder
// kopiert die 3, benennt die Kopie in 5 um
oldNode := xmlDoc.documentElement.selectSingleNode('/movieorganizer/movie[id="3"]');
newNode := xmlDoc.documentElement.selectSingleNode('/movieorganizer');
clone := oldNode.cloneNode(True);
clone.attributes.getNamedItem('id').text := '5';
newNode.appendChild(clone);