![]() |
XML-Knoten ändern mit MSXML
Hallo,
bin in das Thema XML erst kürzlich eingestiegen und das anlegen und auslesen klappt super. Doch jetzt interessiert mich, wie ich einen Knoten in XML ändere? Ich benutze MSXML unter Delphi2005 PE und lege die Nodes mit "create" und "appendChild" an. Als Filter will ich die Rechnungsnummer nehmen (diese ist eindeutig). Meine XML-Struktur sieht folgendermaßen aus:
Delphi-Quellcode:
Meine Idee ist, dass ich den Knoten "Rechnung" komplett auslese, die Werte entsprechend ändere, den Knoten lösche
<root>
<rechnung> <rechnungsnummer>C01/06</rechnungsnummer> <datum>01.01.2006</datum> <positionen> <pos> <bezeichnung>Test</bezeichnung> <einzelpreis>1,00</einzelpreis> <menge>2</menge> </pos> <pos> <bezeichnung>Test2</bezeichnung> <einzelpreis>2,00</einzelpreis> <menge>5</menge> </pos> </positionen> </rechnung> <rechnung> ... </rechnung> </root> und ihn wieder mit den geänderten Daten neu anlege (am besten an die gleiche Stelle - AppendAfter???). - Gibt es sowas wie AppendAfter??? - Gibt es eine andere Möglichkeit, Knoten in XML zu ändern (Text!, nicht die Attribute -> dafür habe ich schon einiges gefunden) Vielen Dank im Voraus. |
Re: XML-Knoten ändern mit MSXML
Herzlich willkommen in der Delphi-PRAXiS, Silk.
Du bist nahe dran: Die Methode insertBefore() kommt der von dir gesuchten Funktionalität am nächsten. Allerdings kannst du mit der Methode replaceChild() das Entfernen und Einfügen zusammenfassen. Du kannst auch schreibend auf die Eigenschaft text eines Elementes zugreifen, wenn du nur seinen Textinhalt ändern möchtest. In der XML-Rubrik des Forums findest du reichlich Anschauungsmaterial. Freundliche Grüße vom marabu |
Re: XML-Knoten ändern mit MSXML
...vielen Dank für die schnelle Hilfe!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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