![]() |
Beim XML laden bleibt die Anwendung einfach hängen
Hi Leute
Ich komm hier einfach nicht weiter. Ich versuche Daten aus einer XML Datei zu lesen aber irgendwie geht gar nichts und die Anwendung bleibt einfach hängen.
Delphi-Quellcode:
Und hängen bleiben versteh ich: Er geht in die Codezeile hinein (Debugger) geht aber nie mehr raus und die Anwendung ist absolut eingefroren
function XML_Load(XMLFilename : String; VST : TVirtualStringTree) : Boolean;
var XMLDocument : TXMLDocument; begin Result := true; try XMLDocument := TXMLDocument.Create(nil); try XMLDocument.NodeIndentStr := '<2 Leerzeichen>'; XMLDocument.FileName := XMLFilename; if (not(FileExists(XMLFilename))) or (XMLDocument.IsEmptyDoc) then begin XMLDocument.LoadFromXML('<?xml version="1.0"?><'+cXMLRootNodeName+'></'+cXMLRootNodeName+'>'); XMLDocument.SaveToFile; end; try XMLDocument.Active := true; except ShowMessage('XML Fehler: Die Datei "'+XMLFilename+'" ist fehlerhaft.'); Result := false; end; //Des sind die verschiedenen Möglichkeiten die ich getestet hab 1. ShowMessage(XMLDocument.DocumentElement.NodeName); //Hier bleibt er einfach stehen 2. ShowMessage(XMLDocument.Node.ChildNodes.Last.NodeName);//hier funktionierts ABER bei dem bleibt er bei FreeAndNil(XMLDocument); dann hängen 3. ShowMessage(XMLDocument.ChildNodes.Last.NodeName);//hier funktionierts auch bleibt aber wieder hier FreeAndNil(XMLDocument); hängen finally FreeAndNil(XMLDocument); end; except ShowMessage('XML Fehler: Fehler beim Laden des XML Documents'); Result := false; end; end; Ich will den Root Knoten bekommen als Variable heraus bekommen ... nur so nebenbei |
Re: Beim XML laden bleibt die Anwendung einfach hängen
könntest du mal die xml datei anhängen?
oder stellt das ein problem dar? ich hab da mal vor ner weile ein kleines xml check tool geschrieben. kann ich da ja mal durchjagen.... |
Re: Beim XML laden bleibt die Anwendung einfach hängen
Ist absolute kein Problem
aber ich glaub nicht des da dein Check tool so viel findet
XML-Code:
<?xml version="1.0"?>
<List></List> |
Re: Beim XML laden bleibt die Anwendung einfach hängen
puuhhhh: dein code ist ein wenig chaotisch....
Delphi-Quellcode:
dein code:
XMLDocument.NodeIndentStr := '<2 Leerzeichen>'; // ist für das Auslesen unrelevant, benötigts du doch erst beim Erstellen
XMLDocument.FileName := XMLFilename; if (not(FileExists(XMLFilename))) or {OK} (XMLDocument.IsEmptyDoc) then { IsEmptyDoc kann man doch erst nach einem LoadFromFile oder derartiges aufrufen?!} begin XMLDocument.LoadFromXML('<?xml version="1.0"?><'+cXMLRootNodeName+'></'+cXMLRootNodeName+'>'); XMLDocument.SaveToFile; end;
Delphi-Quellcode:
--> sollte so aussehen:try XMLDocument.Active := true; except ShowMessage('XML Fehler: Die Datei "'+XMLFilename+'" ist fehlerhaft.'); Result := false; end; //Des sind die verschiedenen Möglichkeiten die ich getestet hab 1. Möglichkeit 2. Möglichkeit 3. Möglichkeit
Delphi-Quellcode:
Weil wenn bei dir da was fehlschlägt, try XMLDocument.Active := true; { hier fehlt meines Erachtens nach das Laden des XML Files } //Des sind die verschiedenen Möglichkeiten die ich getestet hab 1. Möglichkeit oder 2. Möglichkeit oder 3. Möglichkeit except ShowMessage('XML Fehler: Die Datei "'+XMLFilename+'" ist fehlerhaft.'); Result := false; end; dann macht er ja trotzdem weiter mit deinen Möglichkeiten. |
Re: Beim XML laden bleibt die Anwendung einfach hängen
Zitat:
IsEmptyDoc ist auch weg dein code:
Delphi-Quellcode:
Weil wenn bei dir da was fehlschlägt, try XMLDocument.Active := true; except ShowMessage('XML Fehler: Die Datei "'+XMLFilename+'" ist fehlerhaft.'); Result := false; exit; end; //Des sind die verschiedenen Möglichkeiten die ich getestet hab 1. Möglichkeit 2. Möglichkeit 3. Möglichkeit dann macht er ja trotzdem weiter mit deinen Möglichkeiten.[/quote] nein ich hab nur vergessen nach dem ersten except block ein exit aufzurufen (weil ich des früher anderes gemacht hab) Aber des Problem das er einfach stecken bleibt ist immer noch da :wall: |
Re: Beim XML laden bleibt die Anwendung einfach hängen
kannst du deine xml_tlb.pas mal anhängen? habe hier msxml 6.0 importiert....
|
Re: Beim XML laden bleibt die Anwendung einfach hängen
Also ich nutze diese units
Delphi-Quellcode:
uses xmldom, XMLIntf, msxmldom, XMLDoc
|
Re: Beim XML laden bleibt die Anwendung einfach hängen
ShowMessage(XMLDocument.DocumentElement. NodeName);
--> hier bekomme ich als ShowMessageDialog den String 'List' angezeigt ShowMessage(XMLDocument.Node.ChildNodes.Last.NodeN ame); --> es existieren keine Childnodes in deinem XML Dokument! ShowMessage(XMLDocument.ChildNodes.Last.NodeName); --> es existieren keine Childnodes in deinem XML Dokument! |
Re: Beim XML laden bleibt die Anwendung einfach hängen
hmm ja
aber wenn ich ShowMessage(XMLDocument.DocumentElement.NodeName); aufrufe dann bleibt er einfach in der zeile hängen |
Re: Beim XML laden bleibt die Anwendung einfach hängen
sicher?
vielleicht ist der dialog einfach nur in den hintergrund gerutscht? dann schaut es so aus als wenn nix mehr geht... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 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