![]() |
AW: Wert in XML finden?
.. kommentiere doch mal " Doc.Appendchild(RootNode); " aus.
Grüße Klaus |
AW: Wert in XML finden?
Zitat:
|
AW: Wert in XML finden?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab's jetzt so gelöst:
Delphi-Quellcode:
Der Nachteil ist nur, dass für den <Personen>-Knoten es keinen <Root>-Knoten gibt, man kann somit nicht mehrere Personen anlegen, des weiteren erscheint die neue Person im <Header>-Knoten statt <Daten>-Konoten.
procedure TForm1.Button3Click(Sender: TObject);
var Doc: TXMLDocument; RootNode, ParentNode, DatenNode, VarElemen, ElementNode, ItemNode, TextNode: TDOMNode; begin try ReadXMLFile(Doc, 'Muster.xml'); //Doc := TXMLDocument.Create; //RootNode := Doc.CreateElement('Daten2'); //Doc.Appendchild(RootNode); //RootNode:= Doc.DocumentElement; ElementNode := Doc.CreateElement('Personen'); ItemNode:=Doc.CreateElement('Anrede'); TextNode:=Doc.CreateTextNode('Herr'); ItemNode.AppendChild(TextNode); ElementNode.AppendChild(ItemNode); ItemNode:=Doc.CreateElement('Vorname'); TextNode:=Doc.CreateTextNode('Tim'); ItemNode.AppendChild(TextNode); ElementNode.AppendChild(ItemNode); ItemNode:=Doc.CreateElement('Alter'); TextNode:=Doc.CreateTextNode('19'); ItemNode.AppendChild(TextNode); ElementNode.AppendChild(ItemNode); //RootNode.AppendChild(ElementNode); DatenNode := Doc.DocumentElement.FindNode('Header'); DatenNode.AppendChild(ElementNode); WriteXMLFile(Doc, 'MusterNeu2.xml') finally Doc.Free; end; end; |
AW: Wert in XML finden?
Es scheint an dieser Zeile zu scheitern - "Doc.Appendchild(RootNode);"
Das mach wohl den Knoten RootNode zum Root-Knoten im Doc, und das muss bereits vorhanden bzw. besetzt sein, und daher der Fehler. Kann das sein? |
AW: Wert in XML finden?
Guten Abend,
das Teilmacht was Du ihm sagst
Delphi-Quellcode:
Demnach wird der neue <Personen> Knoten an den Header angehängt.
DatenNode := Doc.DocumentElement.FindNode('Header');
DatenNode.AppendChild(ElementNode); Der gemeinsame Aufhänger für die Personen ist aber der <Daten> Knoten. Grüße Klaus |
AW: Wert in XML finden?
Zitat:
|
AW: Wert in XML finden?
Delphi-Quellcode:
macht das obige einen Unterschied?
DatenNode := Doc.DocumentElement.FindNode('Header').FindNode('Daten');
DatenNode.AppendChild(ElementNode); Grüße Klaus |
AW: Wert in XML finden?
Liste der Anhänge anzeigen (Anzahl: 1)
Das geht? Klasse, jetzt funkt es! Riiiiiesen Dank Dir!
Jetzt aber noch eine Hürde. Ich muss ja zwei Personen einfügen. Wie kann ich das gleiche Element bzw. <Personen>-Konoten noch einmal anlegen, ohne das erste zu überschrieben? |
AW: Wert in XML finden?
Delphi-Quellcode:
erstellt doch bei jedem Aufruf einem neuen Knoten oder?
ElementNode := Doc.CreateElement('Personen');
Damit wird der alte nicht überschrieben. Ich würde das ganze anfügen in eine Methode mit entsprechenden Parametern auslagern. Grüße Klaus |
AW: Wert in XML finden?
Zitat:
Wahrscheinlich weil ich keinen Root-Knoten habe. Aber wenn ich diesen anlege, dann kann ich mein Konstrukt nicht in die bestehende XML einfügen, da es wohl zu Root-Konflikten kommt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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