AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IXmlDocument Node kopieren

Ein Thema von sephraina · begonnen am 4. Jul 2015 · letzter Beitrag vom 4. Jul 2015
Antwort Antwort
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#1

IXmlDocument Node kopieren

  Alt 4. Jul 2015, 14:24
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: http://www.delphipraxis.net/169717-x...-kopieren.html
nur ist der schon etwas älter... oder ich mach was grundsätzlich falsch.

Mein Ansatz (Natürlich alles vorher initialisiert / deklariert):
Delphi-Quellcode:
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;
Hoffe jemand hat eine Idee oder sieht grad den Fehler...

Gruss Sephraina
  Mit Zitat antworten Zitat
sephraina

Registriert seit: 17. Feb 2015
36 Beiträge
 
Delphi XE7 Professional
 
#2

AW: IXmlDocument Node kopieren

  Alt 4. Jul 2015, 16:05
Habs doch noch hinbekommen:

Einfach die Zeile die probleme machte ersetzen durch:

Delphi-Quellcode:
cloneN := iNode.ChildNodes.Nodes[i].cloneNode(True);
xmlT.DocumentElement.ChildNodes.Nodes[0].ChildNodes.Add(cloneN);
dann gehts
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz