AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML: EAccessViolation, beim Laden eines Eintrags
Thema durchsuchen
Ansicht
Themen-Optionen

XML: EAccessViolation, beim Laden eines Eintrags

Ein Thema von zecke · begonnen am 16. Mai 2007 · letzter Beitrag vom 17. Mai 2007
Antwort Antwort
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#1

XML: EAccessViolation, beim Laden eines Eintrags

  Alt 16. Mai 2007, 23:13


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?
mfg zecke
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: XML: EAccessViolation, beim Laden eines Eintrags

  Alt 17. Mai 2007, 08:01
Hallo

active:=true muß hinter dem Setzen des Filenames stehen.

edit:
so gehts dann auch:
Memo1.Lines.Add(XMLDocument1.DocumentElement.ChildNodes['spieler_001'].ChildNodes['main_daten'].ChildNodes['vorname'].Text); das  ChildNodes['all_men']. muß raus, da es der Stammknoten=documentelement ist (korrigiert mich bitte, wenns falsch erklärt ist, mit xml habe ich nicht allzuviel gemacht)


Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: XML: EAccessViolation, beim Laden eines Eintrags

  Alt 17. Mai 2007, 11:56


Vielen Dank! Du hattest mit Allem vollkommen Recht

Dieser Fehler mit Active... exakt den Selben machte ich schon bei den Indys.. das wird mein Lieblings-Logik-Fehler
mfg zecke
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:29 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