Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   elemente suchen und aus xml datei löschen (https://www.delphipraxis.net/214989-elemente-suchen-und-aus-xml-datei-loeschen.html)

CVi 18. Apr 2024 11:58

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;

DeddyH 18. Apr 2024 12:08

AW: elemente suchen und aus xml datei löschen
 
Das sollte helfen: Mit XML-Knoten arbeiten

himitsu 18. Apr 2024 12:27

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:
XMLText := ReplaceStr(XMLText, #13#10'   '#13#10, #13#10);
:freak:

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:
Node.ParentNode.ChildNodes.Remove(Node);
[/edit]

PS: [DELPHI]Delphi-Code[/DELPHI], bzw. [CODE=XML]<XML>[/CODE] oder [CODE]anderer Code, bzw. formatierter Text, wie z.B. XML[/CODE]
Tipp: https://www.embarcadero.com/de/products/delphi/starter


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