AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Beim XML laden bleibt die Anwendung einfach hängen
Thema durchsuchen
Ansicht
Themen-Optionen

Beim XML laden bleibt die Anwendung einfach hängen

Ein Thema von gsh · begonnen am 26. Aug 2007 · letzter Beitrag vom 26. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
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
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 01:58
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....
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

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

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 02:04
Ist absolute kein Problem
aber ich glaub nicht des da dein Check tool so viel findet
XML-Code:
<?xml version="1.0"?>
<List></List>
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
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 02:34
puuhhhh: dein code ist ein wenig chaotisch....
Delphi-Quellcode:
      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;
dein code:
Delphi-Quellcode:
      
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
--> sollte so aussehen:
Delphi-Quellcode:
      
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;
Weil wenn bei dir da was fehlschlägt,
dann macht er ja trotzdem weiter mit deinen Möglichkeiten.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

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

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 10:10
Zitat von computer-glossar.de:
Delphi-Quellcode:
      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;
ok NodeIndentStr ist jetzt nur noch beim speichern drinnen
IsEmptyDoc ist auch weg

dein code:
Delphi-Quellcode:
      
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
Weil wenn bei dir da was fehlschlägt,
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
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
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 10:28
kannst du deine xml_tlb.pas mal anhängen? habe hier msxml 6.0 importiert....
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

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

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 10:43
Also ich nutze diese units
uses xmldom, XMLIntf, msxmldom, XMLDoc
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
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 11:02
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!
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

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

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 11:13
hmm ja
aber wenn ich ShowMessage(XMLDocument.DocumentElement.NodeName); aufrufe dann bleibt er einfach in der zeile hängen
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
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Beim XML laden bleibt die Anwendung einfach hängen

  Alt 26. Aug 2007, 11:15
sicher?
vielleicht ist der dialog einfach nur in den hintergrund gerutscht?
dann schaut es so aus als wenn nix mehr geht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:45 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