Entwickler-Ecke
LCL-Komponenten - XML-Datei erstellen
AlexII - Mo 26.10.20 12:36
Titel: XML-Datei erstellen
Hallo Leute,
ich habe hier ein Beispiel gefunden wie ich eine XML-Datei erstelle, nur ist die zu verschachtelt für mich. Irgendwie stehe ich auf dem Schlauch und verstehe nicht wie ich den Code so modifiziere, dass ich den parent node "usuario" weg habe? Dass die XML am Ende so aussieht?
So wird sie jetzt erstellt:
XML-Daten
1: 2: 3: 4: 5: 6:
| <register> <usuario> <nome>Fernando</nome> <idade>32</idade> <usuario> </register> |
und das ist mein Ziel:
XML-Daten
1: 2: 3: 4:
| <register> <nome>Fernando</nome> <idade>32</idade> </register> |
Hier mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TForm1.Button3Click(Sender: TObject); var Doc: TXMLDocument; RootNode, parentNode, nofilho: TDOMNode; begin try Doc := TXMLDocument.Create;
RootNode := Doc.CreateElement('register'); Doc.Appendchild(RootNode); RootNode:= Doc.DocumentElement; parentNode := Doc.CreateElement('usuario'); RootNode.Appendchild(parentNode);
parentNode := Doc.CreateElement('nome'); nofilho := Doc.CreateTextNode('Fernando'); parentNode.Appendchild(nofilho); RootNode.ChildNodes.Item[0].AppendChild(parentNode);
parentNode := Doc.CreateElement('idade'); nofilho := Doc.CreateTextNode('32'); parentNode.Appendchild(nofilho); RootNode.ChildNodes.Item[0].AppendChild(parentNode);
writeXMLFile(Doc, 'test.xml'); finally Doc.Free; end; end; |
Vielen Dank für die Anregungen.
jaenicke - Mo 26.10.20 15:02
Tut mir leid, dass ich so frage, aber hast du den Quelltext aus der Lazarus Doku denn verstanden? Ich meine du erstellst dort ja explizit den Knoten 'usuario' mit Doc.CreateElement('usuario')...
Wenn du den nicht brauchst, warum erstellst du ihn dann statt des Knotens, den du möchtest?
AlexII - Mo 26.10.20 18:27
jaenicke hat folgendes geschrieben : |
Tut mir leid, dass ich so frage, aber hast du den Quelltext aus der Lazarus Doku denn verstanden? Ich meine du erstellst dort ja explizit den Knoten 'usuario' mit Doc.CreateElement('usuario')...
Wenn du den nicht brauchst, warum erstellst du ihn dann statt des Knotens, den du möchtest? |
Na ja, das ist ja das gerade, hätte ich den Code verstanden, dann hätte ich das Thema nicht erstellt. Gibt es vielleicht noch irgendwelche Dokus für XML mit Lazarus oder Delphi?
jaenicke - Mo 26.10.20 18:42
Es ist halt recht schwierig etwas dazu zu sagen, wenn du nicht schreibst was du daran nicht verstehst. Denn die Befehle sind eigentlich selbsterklärend, wenn man sie Wort für Wort anschaut...
CreateElement - create element - Erzeuge ein neues Element mit dem angegebenen Namen
AppendChild - append child - Hänge an der Stelle des Aufrufs (Doc.AppendChild --> im Dokument direkt, RootNode.AppendChild --> unter dem Knoten RootNode, ...) ein Element darunter
CreateTextNode - create text node - Erzeuge einen neuen Knoten als reinen Textknoten, sprich nur Textinhalt ohne den Namen eines Knotens
DocumentElement - document element - Das ist der oberste Knoten, hier also register
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!