Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Eintrag aus XML Datei löschen (https://www.delphipraxis.net/26970-eintrag-aus-xml-datei-loeschen.html)

celinaw 2. Aug 2004 10:11


Eintrag aus XML Datei löschen
 
Hi :hi:

Ich habe folgendes Problem:

Ich muss einen XML File Laden, einen Eintrag löschen und die Datei anschließend wieder speichern.
Ich habe nun schon diverse Tutorials und seiten durchgelesen und bekomme das einfach nicht hin. Das mag wohl daran liegen das ich selbst mit Delphi noch nicht so gut bin. Kann mir mal jemand anhand eines Beispiels ein bisschen genauer erklären wie ich das lösen kann?

Dieser Eintrag muss aus dem angehängten File entfernt werden: GroupID="145386"

Kann mir da jemand bei Helfen :gruebel:

Gruß Celina

Ups: Ich habe Delphi 7 Prof. und Windows XP

[edit=Admin]Download aus Datenschutzgründen entfernt. Mfg, Daniel[/edit]

generic 2. Aug 2004 14:21

Re: Eintrag aus XML Datei löschen
 
du solltest mit deinen kundendaten nicht so umgehen !

DATENSCHUTZ !!

wenn du im inet was postest dann immer xxx oder testdaten.

was nutzt du um die xml file zu bearbeiten ? msxml ?

CalganX 2. Aug 2004 14:39

Re: Eintrag aus XML Datei löschen
 
Hi,
erstmal gebe ich generic Recht. ;)

Wegen deinem Problem: erstmal solltest du den Eintrag per XPath finden:
Delphi-Quellcode:
var
  XPath: string;
begin
  XPath := '/Data/Dealer[@GroupID="145386"]';
So sähe das in deinem Fall aus. Angenommen du verwendest MS XML, dann musst du so fortfahren:
Delphi-Quellcode:
  DealerNode := XMLDoc.selectSingleNode(XPath);
  { Jetzt ist die Frage was willst du löschen? Das Attribut oder die Node? }
  { Im Falle der Node "Dealer": }
  XMLDoc.selectSingleNode('Data').removeChild(DealerNode);
  { Im Falle des Attributs: }
  DealerNode.attributes.removeNamedItem('GroupID');
end;
Ganz einfach also. ;)

Chris

MathiasSimmack 2. Aug 2004 14:54

Re: Eintrag aus XML Datei löschen
 
Könnte dann nicht einfach mal ein Mod die XML-Datei vorsorglich entfernen? :roll:
Das riesig geschriebene "Datenschutz" lädt ja gerade dazu ein, sich mal die Daten anzuschauen.

Luckie 2. Aug 2004 14:58

Re: Eintrag aus XML Datei löschen
 
Wer sagt denn, dass die Daten echt sind?

MathiasSimmack 2. Aug 2004 15:00

Re: Eintrag aus XML Datei löschen
 
Im Gegensatz zum Gericht, wo du solange als unschuldig giltst, bis das Gegenteil bewiesen ist, würde ich bei solchen Sachen mal vom Gegenteil ausgehen. Celina kann ja immer noch sagen: Okay, es waren nur Fake-Daten. Aber manchmal denkt man vor lauter Problemen nicht daran.

celinaw 2. Aug 2004 16:50

Re: Eintrag aus XML Datei löschen
 
Hi, @all

Danke für eure schnelle Hilfe! Ich werde es mal ausprobieren.
Was die Daten angeht, so habt ihr sicher Recht. Da sollte ich besser mit aufpassen.
Hab ich nicht dran gedacht. Dank für den Hinweis!!

Liebe Grüße Celina

celinaw 2. Aug 2004 17:02

Re: Eintrag aus XML Datei löschen
 
Hi nochmal..

Ja ich verwende MSXML.

Wie muss ich denn die XML Datei Laden? In eine Stringlist mit dem Opendialog?
Sorry, aber ich habe so etwas noch nie gemacht.. :oops:

Oder gibt es bei MsXML eine extra Funktion zum Einlesen bzw. Öffnen?

Gruß Celina

MathiasSimmack 2. Aug 2004 17:13

Re: Eintrag aus XML Datei löschen
 
Der MS-XML-Parser stellt dir mit "load" und "save" die passenden Funktionen zur Verfügung. Erwartet wird in beiden Fällen nur der Dateiname. Hast du zufällig das MS-XML-SDK installiert? Das wäre sehr zu empfehlen, weil du dort alle Befehle usw. finden kannst.

Wenn du mit DOM arbeitest (machen die meisten, ich eingeschlossen ;)), dann hast du das Dokument nach dem Laden im Speicher und kannst recht bequem damit arbeiten. Das einfachste Beispiel:
Delphi-Quellcode:
xmldoc := CoDomDocument40.Create;
if(xmldoc <> nil) then
try
  if(xmldoc.load('c:\eigene Dateien\test.xml')) then
  begin
    ShowMessage(xmldoc.xml);
  end;
finally
  xmldoc := nil;
end;
"xmldoc" ist eine Variable vom Typ DomDocument40 (MS XML 4).

celinaw 2. Aug 2004 19:11

Re: Eintrag aus XML Datei löschen
 
Hi Mathias :hi:

Vielen Dank für dein ausführliche Erklärung :thumb:

Es funktioniert ohne Probleme. :bounce1: :bounce1:

Liebe Grüße Celina


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 1 von 2  1 2      

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