Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Zugriffsverletzung beim Node.Text auslesen (https://www.delphipraxis.net/67675-zugriffsverletzung-beim-node-text-auslesen.html)

TH3LL 18. Apr 2006 13:25


Zugriffsverletzung beim Node.Text auslesen
 
Hi,
ich habe ein Problem, dessen lösung mir durch das lesen der anderen Forenbeiträge gänzlich unmöglich war, weil es eigentlich ein ganz banales Problem ist^^:

Ich lese mit einer Funktion
eine XMLDatei folgenden Typs aus

Zitat:

<vereinsdaten>
--<saison>1</saison>
----<vereine>
------<verein id="1" manager="1">
--------<liga>1</liga>
------</verein>
------<verein id="2" manager="2">
--------<liga>2</liga>
------</verein>
----</vereine>
</vereinsadaten>
und erhalte an folgender Stelle eine Zugriffsverletzung:

Delphi-Quellcode:
function TForm4.Phase1:boolean;
var x:integer;
    NewMod,Node:IXMLDOMNode;
Begin
    For x:=1 to 100 do
        Begin           Node:=Vereine.documentElement.selectSingleNode('vereine/verein[id="'+inttostr(ListV[x])+'"]/liga'); //In diesem Fall wird hier der verein mit der id="1" abgerufen
            If strtoint(Node.text)<>4 then //Hier tritt die Zugriffsverletzung auf
             Begin
               ...
             end;
Phase1:=true;
end;
Nun heisst doch aber, dass das Programm überhaupt über die Zeile
Delphi-Quellcode:
Node:=Vereine.documentElement.selectSingleNode('vereine/verein[id="'+inttostr(ListV[x])+'"]/liga');
gekommen ist, dass die Datei, sowie der Knoten "Liga" gefunden wurde, denn sonst gäbe es hier ja schon eine Fehlermeldung, oder?

Aber warum ist er dann nicht in der Lage den Text auszulesen??
Es hat auch nicht funktioniert, als ich versucht habe den Text direkt auszulesen, anstatt den Elternknoten zuerst zu speichern.

marabu 18. Apr 2006 13:34

Re: Zugriffsverletzung beim Node.Text auslesen
 
Hi.

Mit Assigned(Node) erfährst du, ob deine Selektion erfolgreich war - anders nicht.

Probiere es mal mit folgender XPath-Expression:

Delphi-Quellcode:
var
  xpath: String;
begin
  // ...
  xpath := Format('vereine/verein[@id="%d"]/liga',[ListV[x]]);
  node := Vereine.documentElement.selectSingleNode(xpath);
  if Assigned(node) then
  begin
  // ...
Grüße vom marabu

TH3LL 18. Apr 2006 16:06

Re: Zugriffsverletzung beim Node.Text auslesen
 
:mrgreen:

Danke mabarbu,
Assigned(Node) war false, aber ich habe auch den fehler gefunden^^

Da hast du mir unbeabsichtig den Fehler gezeigt den ich drin hatte :P
ein simples @ vor "id" hat gefehlt zur kennzeichnung als Attribut, in deinem Beispiel war aber eins, da bin ich stutzig geworden ^^

Vielen dank

sakura 18. Apr 2006 16:08

Re: Zugriffsverletzung beim Node.Text auslesen
 
@TH3LL
Als Tipp für zukünftige Fragen. Es gibt bei uns nicht nur [quote] und [delphi], sondern auch [xml] ;-)

...:cat:...

TH3LL 18. Apr 2006 16:31

Re: Zugriffsverletzung beim Node.Text auslesen
 
ist mir auch vorhin aufgefallen :P

Habs nur nich sofort gemerkt weill es nicht in der Buttonleiste ist :D

sakura 18. Apr 2006 16:41

Re: Zugriffsverletzung beim Node.Text auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von TH3LL
Habs nur nich sofort gemerkt weill es nicht in der Buttonleiste ist :D

Nun ja, dann hast Du die Reiter (siehe Bild) noch nicht gesehen. Aber ich gebe zu, die DP hat so viele Funktionen... ;)

Viel Spaß bei und mit uns noch
...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 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