![]() |
XML Parse Error beim Auslesen
Hi,
Ich möchte im Voraus sagen dass ich noch nicht so bewandert mit der Programmierung von XML in Delphi bin. Ich möchte eine Vorhandene XML-Datei auslesen, die wiefolgt aussieht (als Beispiel): <?xml version="1.0" encoding="UTF-8"?> <Zugabgabe> <Allgemein/> <Training/> <Spiele> <Spiel id=1>A</Spiel> <Spiel id=2>B</Spiel> <Spiel id=3>C</Spiel> </Spiele> <Handel/> </Zugabgabe> Doch ich komme in meinem Programm nicht zu dem Punkt auf sie zugreifen zu können, da sie nicht richtig ausgelesen wird. Hier mein Quellcode zum Auslesen der Datei:
Delphi-Quellcode:
Ich bin mir nicht sicher ob die Anweisung "if not FileExists..." richtig ist, aber so weit kommt es gar nicht. Das Programm erkennt die Vorhandene Datei, wird aber durch
var
Form1: TForm1; xmlDoc:IXMLDOMDocument2; procedure TForm1.LadeXMLDatei(Sender: TObject); begin fAppPath:=Extractfilepath(Application.ExeName); //Der Pfad wird ermittelt und ist auch korrekt xmlDoc:=CODOMDocument40.Create; //Ich benutze MSXML4.0 und habe die passende Library und sie auch in der USES anwweisung if not FileExists(fappPath+Filename) then begin xmlDoc.loadxml('<?xml version="1.0"?><Zugabgabe></Zugabgabe>'); end else xmlDoc.loadXML(fappPath+Filename); if xmlDoc.parseError.errorCode<>0 then begin MessageDLg('Die XML-Datei ist nicht korrekt!',mtError, [mbOK],0); Application.Terminate; //Hier gibt es den Abbruch aufgrund eines Lesefehlers end; end;
Delphi-Quellcode:
abgebrochen weil die Datei fehlerhaft ist. Der Fehlercode ist etwas absurd (-1072896682). Was habe ich da falsch gemacht?
if xmlDoc.parseError.errorCode<>0 then begin
MessageDLg('Die XML-Datei ist nicht korrekt!',mtError, [mbOK],0); Application.Terminate; Wenn ich die ParseError-Überprüfugn auslasse liest er die Datei ohne Fehlermeldung aus, aber wenn ich auf einen Node zugreifen will erhalte ich eine Zugriffsverletzung. Ist womöglich nur die XML Datei unlesbar? Ein tutorial zu XML das ich mir durchgelesen habe hatte den Befehl
Delphi-Quellcode:
noch im Quellcode, aber Delphi zeigt mir da einen Fehler an, dass xmlDoc die Eigenschaft "NewParser" nicht besitzt.
xmlDoc.setProperty('Newparser',true);
Vielen dank im Voraus für eure Hilfe... |
Re: XML Parse Error beim Auslesen
Herzlich willkommen in der Delphi-PRAXiS, TH3LL.
Die Methode LoadXML() verlangt eine Zeichenkette - Load() ist die Mehtode um einen URL (auch Datei) zu laden:
Delphi-Quellcode:
Freundliche Grüße vom marabu
type
TForm1 = class(TForm) // ... private xmldoc: IXMLDomDocument2; end; var Form1: TForm1; procedure TForm1.LadeXMLDatei(Sender: TObject); begin fAppPath := Extractfilepath(Application.ExeName); xmlDoc := CoDomDocument.Create; if FileExists(fappPath + Filename) then xmlDoc.load(fappPath + Filename) else xmlDoc.loadxml('<?xml version="1.0"?><Zugabgabe/>'); if xmlDoc.parseError.errorCode <> 0 then begin MessageDLg('Die XML-Datei ist nicht korrekt!',mtError, [mbOK], 0); Application.Terminate; // Hier gibt es den Abbruch aufgrund eines Lesefehlers end; end; |
Re: XML Parse Error beim Auslesen
So eine banalität^^
Vielen dank, jetzt versteh ichs :D .. und es klappt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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-2025 by Thomas Breitkreuz