AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML Parse Error beim Auslesen

XML Parse Error beim Auslesen

Ein Thema von TH3LL · begonnen am 8. Mär 2006 · letzter Beitrag vom 8. Mär 2006
Antwort Antwort
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#1

XML Parse Error beim Auslesen

  Alt 8. Mär 2006, 17:22
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:
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;
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
Delphi-Quellcode:
 if xmlDoc.parseError.errorCode<>0 then begin
        MessageDLg('Die XML-Datei ist nicht korrekt!',mtError, [mbOK],0);
        Application.Terminate;
abgebrochen weil die Datei fehlerhaft ist. Der Fehlercode ist etwas absurd (-1072896682). Was habe ich da falsch gemacht?
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
xmlDoc.setProperty('Newparser',true); noch im Quellcode, aber Delphi zeigt mir da einen Fehler an, dass xmlDoc die Eigenschaft "NewParser" nicht besitzt.


Vielen dank im Voraus für eure Hilfe...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: XML Parse Error beim Auslesen

  Alt 8. Mär 2006, 17:31
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:
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;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: XML Parse Error beim Auslesen

  Alt 8. Mär 2006, 18:58
So eine banalität^^

Vielen dank, jetzt versteh ichs .. und es klappt
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 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