AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Zugriffsverletzung beim Node.Text auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung beim Node.Text auslesen

Ein Thema von TH3LL · begonnen am 18. Apr 2006 · letzter Beitrag vom 18. Apr 2006
Antwort Antwort
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#1

Zugriffsverletzung beim Node.Text auslesen

  Alt 18. Apr 2006, 13:25
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
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Zugriffsverletzung beim Node.Text auslesen

  Alt 18. Apr 2006, 13:34
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
  Mit Zitat antworten Zitat
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Zugriffsverletzung beim Node.Text auslesen

  Alt 18. Apr 2006, 16:06


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
ein simples @ vor "id" hat gefehlt zur kennzeichnung als Attribut, in deinem Beispiel war aber eins, da bin ich stutzig geworden ^^

Vielen dank
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zugriffsverletzung beim Node.Text auslesen

  Alt 18. Apr 2006, 16:08
@TH3LL
Als Tipp für zukünftige Fragen. Es gibt bei uns nicht nur [quote] und [delphi], sondern auch [xml]

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Zugriffsverletzung beim Node.Text auslesen

  Alt 18. Apr 2006, 16:31
ist mir auch vorhin aufgefallen

Habs nur nich sofort gemerkt weill es nicht in der Buttonleiste ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Zugriffsverletzung beim Node.Text auslesen

  Alt 18. Apr 2006, 16:41
Zitat von TH3LL:
Habs nur nich sofort gemerkt weill es nicht in der Buttonleiste ist
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
......
Miniaturansicht angehängter Grafiken
buttonleiste_157.gif  
Daniel W.
Ich bin nicht zurück, ich tue nur so
  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 20:04 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