![]() |
IXmlDocument Node kopieren
Hallo Zusammen
Ich möchte gerne einen ganzen Knoten aus einem IXmlDocument Kopieren und ihn in ein Neues packen. Bei DP fand ich diesen Post: ![]() nur ist der schon etwas älter... oder ich mach was grundsätzlich falsch. :? Mein Ansatz (Natürlich alles vorher initialisiert / deklariert):
Delphi-Quellcode:
Hoffe jemand hat eine Idee oder sieht grad den Fehler...
if myxml = nil then myxml := newXMLDocument else myxml.XML.Clear;
myxml.LoadFromFile('C:\Users\xml.xml'); // Hier wird das 1. File geladen if xmlT = nil then xmlT := newXMLDocument else xmlT.XML.Clear; // hier wird das 2.File erzeugt rNode := xmlT.AddChild('Daten'); //rootnode des 2.Files tNode := rNode.AddChild('Probendaten'); with myxml.DocumentElement do begin for y := 0 to ChildNodes.Count-1 do begin iNode := childnodes[y]; for i := 0 to iNode.ChildNodes.Count-1 do begin // ich vergleiche den Attributwert mit einem String (j). Wenn true soll der Knoten ins neue Dokument kopiert werden if iNode.ChildNodes.Nodes[i].GetAttributeNS('TXT_Charge','') = j then begin showmessage('iNode: nodename: '+iNode.ChildNodes.Nodes[i].XML); // gibt mir den Knotennamen + Inhalt des gewünschten Knoten aus tNode.AddChild(iNode.ChildNodes.Nodes[i].cloneNode(True)); // <=== hier scheint mein Problem showmessage(xmlT.XML.Text); // überprüfen ob der Knoten eingefügt wurde end; end; end; end; Gruss Sephraina |
AW: IXmlDocument Node kopieren
Habs doch noch hinbekommen:
Einfach die Zeile die probleme machte ersetzen durch:
Delphi-Quellcode:
dann gehts :wink:
cloneN := iNode.ChildNodes.Nodes[i].cloneNode(True);
xmlT.DocumentElement.ChildNodes.Nodes[0].ChildNodes.Add(cloneN); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz