Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML-Knoten ändern mit MSXML (https://www.delphipraxis.net/82850-xml-knoten-aendern-mit-msxml.html)

Silk 20. Dez 2006 17:30


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:
<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>
Meine Idee ist, dass ich den Knoten "Rechnung" komplett auslese, die Werte entsprechend ändere, den Knoten lösche
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.

marabu 20. Dez 2006 17:44

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

Silk 22. Dez 2006 10:47

Re: XML-Knoten ändern mit MSXML
 
...vielen Dank für die schnelle Hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 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