Einzelnen Beitrag anzeigen

Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 01:50
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:
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;
Und hängen bleiben versteh ich: Er geht in die Codezeile hinein (Debugger) geht aber nie mehr raus und die Anwendung ist absolut eingefroren

Ich will den Root Knoten bekommen als Variable heraus bekommen ... nur so nebenbei
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat