Benutze nur die Standard-Komponente TXMLDocument (TurboDelphi schon dabei, von daher..).
Ich habe folgende
XML-Datei:
Delphi-Quellcode:
<?
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>
Jetzt wollte ich den Vornamen einfach mal in ein Memo ausgeben lassen:
Delphi-Quellcode:
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;
Wenn ich dann den Button drücke, bekomme ich eine EAccessViolation. Die Datei existiert, der Pfad stimmt ebenfalls.
Wo ist hier der Fehler?