![]() |
elemente suchen und aus xml datei löschen
Hallo,
ich habe folgendes xml beispiel: <?xml version="1.0" encoding="Windows-1252"?> <Messages> <Message> <Auftrag>4046714000000</Auftrag> <Kundennummer>4260438010002</Kundennummer> <Artikel> <POS>1</POS> <Artikelnummer>4711</Artikelnummer> <Artikelbeschreibung>Beispielartikel 1</Artikelbeschreibung> <Menge>2.00</Menge> <Einzelpreis>100.00</Einzelpreis> <Rabatt> <Rabattprozent>10</Rabattprozent> <Rabattsumme>10.00</Rabattsumme> </Rabatt> </Artikel> <Artikel> <POS>2</POS> <Artikelnummer>4712</Artikelnummer> <Artikelbeschreibung>Beispielartikel 2</Artikelbeschreibung> <Menge>1.00</Menge> <Einzelpreis>0.00</Einzelpreis> <Rabatt> <Rabattprozent>0</Rabattprozent> <Rabattsumme>0.00</Rabattsumme> </Rabatt> </Artikel> <Artikel> <POS>3</POS> <Artikelnummer>4713</Artikelnummer> <Artikelbeschreibung>Beispielartikel 3</Artikelbeschreibung> <Menge>1.00</Menge> <Einzelpreis>100.00</Einzelpreis> <Rabatt> <Rabattprozent>10</Rabattprozent> <Rabattsumme>10.00</Rabattsumme> </Rabatt> </Artikel> <Artikel> <POS>4</POS> <Artikelnummer>4714</Artikelnummer> <Artikelbeschreibung>Beispielartikel 4</Artikelbeschreibung> <Menge>1.00</Menge> <Einzelpreis>0.00</Einzelpreis> <Rabatt> <Rabattprozent>00</Rabattprozent> <Rabattsumme>0.00</Rabattsumme> </Rabatt> </Artikel> </Message> </Messages> aus diesem Beispiel müssen alle Artikel deren Einzelpreis = 0.00 ist entfernt werden. dazu habe ich folgenden code begonnen, weiss aber nicht wie ich nodes/elemente löschen kann bevor ich die xml neu schreibe. Vielleicht kann mir hier jemand helfen. Vielen Dank im voraus. (Delphi7) procedure TMainFormular.Button1Click(Sender: TObject); var Doc: IXMLDocument; i: Integer; begin Doc := LoadXMLDocument('test.XML'); Doc.Active := True; code zum löschen von inhalten elementen?.... Doc.SaveToFile('test.XML'); end; |
AW: elemente suchen und aus xml datei löschen
Das sollte helfen:
![]() |
AW: elemente suchen und aus xml datei löschen
Beim Löschen von Knoten im IXMLDocument, bleibt leider die Formatierung zurück, also Zeilenumbruch und die Einrückungsleerzeichen, wo der Knoten mal war. :wall:
Falls das stört, wird man am ende das XML nochmal neu formatieren müssen oder z.B. manuell mit
Delphi-Quellcode:
:freak:
XMLText := ReplaceStr(XMLText, #13#10' '#13#10, #13#10);
Der gefundene Knoten lässt sich selbst nicht löschen, aber im Parent-Knoten gibt es was zum Löschen ... glaub irgendwie so
Delphi-Quellcode:
Node.Parent.Delete(Node);
[edit] Nee, war
Delphi-Quellcode:
[/edit]
Node.ParentNode.ChildNodes.Remove(Node);
PS: [DELPHI]Delphi-Code[/DELPHI], bzw. [CODE=XML]<XML>[/CODE] oder [CODE]anderer Code, bzw. formatierter Text, wie z.B. XML[/CODE] Tipp: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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 by Thomas Breitkreuz