![]() |
XML: EAccessViolation, beim Laden eines Eintrags
:hi:
Benutze nur die Standard-Komponente TXMLDocument (TurboDelphi schon dabei, von daher..). Ich habe folgende XML-Datei:
Delphi-Quellcode:
Jetzt wollte ich den Vornamen einfach mal in ein Memo ausgeben lassen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<all_men> <spieler_001> <main_daten> <vorname>Rafael</vorname> <nachname>Nadal</nachname> <alter>20</alter> <geburtstag>03-06-1986</geburtstag> <land>Spanien</land> <groesse>185</groesse> <gewicht>85</gewicht> <profi>2001</profi> <spielhand>links</spielhand> <rueckhand>beidhändig</rueckhand> <belag>Sand</belag> <rang>2</rang> <rang2007>2</rang2007> <stil>Schneller Läufer mit sehr starker Vorhand</stil> </main_daten> <faehigkeiten> <schlagen> <vorhand> <kraft>94</kraft> <winkel>92</winkel> <kontrolle>94</kontrolle> </vorhand> <rueckhand> <kraft>85</kraft> <winkel>86</winkel> <kontrolle>89</kontrolle> </rueckhand> </schlagen> </faehigkeiten> </spieler_001> </all_men>
Delphi-Quellcode:
Wenn ich dann den Button drücke, bekomme ich eine EAccessViolation. Die Datei existiert, der Pfad stimmt ebenfalls.
procedure TForm1.Button1Click(Sender: TObject);
begin XMLDocument1.Active:=true; XMLDocument1.FileName:=(ExtractFilePath(ParamStr(0))+'test.xml'); Memo1.Lines.Add(XMLDocument1.DocumentElement.ChildNodes['all_men'].ChildNodes['spieler_001'].ChildNodes['main_daten'].ChildNodes['vorname'].Text); XMLDocument1.Active:=false; end; Wo ist hier der Fehler? |
Re: XML: EAccessViolation, beim Laden eines Eintrags
Hallo
active:=true muß hinter dem Setzen des Filenames stehen. edit: so gehts dann auch:
Delphi-Quellcode:
das
Memo1.Lines.Add(XMLDocument1.DocumentElement.ChildNodes['spieler_001'].ChildNodes['main_daten'].ChildNodes['vorname'].Text);
Delphi-Quellcode:
muß raus, da es der Stammknoten=documentelement ist (korrigiert mich bitte, wenns falsch erklärt ist, mit xml habe ich nicht allzuviel gemacht)
ChildNodes['all_men'].
Mfg Frank |
Re: XML: EAccessViolation, beim Laden eines Eintrags
:hi:
Vielen Dank! Du hattest mit Allem vollkommen Recht :thumb: Dieser Fehler mit Active... exakt den Selben machte ich schon bei den Indys.. das wird mein Lieblings-Logik-Fehler :wall: :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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