Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   XML Node löschen (https://www.delphipraxis.net/171693-xml-node-loeschen.html)

Saulmann 20. Nov 2012 10:45

XML Node löschen
 
Hi leute,
ich möchte aus meiner XML einige Nodes löschen. Es sollen nur die Nodes gelöscht werden, die den Eintrag "blau" enthalten.
So wollte ich es realisieren:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  XML: IXML;

  begin
    XML := GetXML(XMLDocument1);

    for i := 0 to XML.Node.Count - 1 do
      if XML.Node[i].Farbe = 'blau' then
        XML.Node.Remove(IXMLNode(XML.Node[i]));
        //XML.Node.Delete(i);

    XMLDocument1.Refresh;
    XMLDocument1.SaveToFile('C:\...\meine.xml');
  end;
Bekomme aber eine Zugriffsverletzung beim Aufruf von XMLDocument1.Refresh;
Kann mir da jemand weiterhelfen?

Viele Grüße,
Saul

shmia 20. Nov 2012 10:48

AW: XML Node löschen
 
Immer rückwärts löschen!!!
Delphi-Quellcode:
for i := XML.Node.Count - 1 downto 0 do // <==
  if XML.Node[i].Farbe = 'blau' then
     XML.Node.Remove(IXMLNode(XML.Node[i]));
     //XML.Node.Delete(i);

himitsu 20. Nov 2012 11:50

AW: XML Node löschen
 
Wenn man nur Einwas löschen will, dann geht auch vorwärts, aber dann muß man auch mit Break aus der Schleife raus, wenn gelöscht wurde.


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