![]() |
Zugrifstverletzung, xml .-.
Also ich hab da was zusammengebaut, jedoch jedesmal wenn ich es ausführe kommen alle hand an zugriffsverletzungen und es klappt nicht.
hier ist mal der teil des codes. Würde mich über schnelle antworten freuen. ~.echo
Delphi-Quellcode:
{...} XMLDoc.FileName := 'dateiname'; XMLDoc.Active:=True; SIN:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('player'); ANE := SIN; repeat sname := ANE.ChildNodes['name'].Text; srace := ANE.ChildNodes['race'].Text; sclass := ANE.ChildNodes['class'].Text; slevel := ANE.ChildNodes['level'].Text; with form2.listview1.Items.Add do begin caption:=sname; SubItems.Add(srace); SubItems.Add(sclass); SubItems.Add(slevel); end; ANE := ANE.NextSibling; until ANE = nil; |
Re: Zugrifstverletzung, xml .-.
Hallo,
dein Programm kommt wahrscheinlich mit den angebotenen Daten nicht zurecht. Schade, dass du keine Beispieldaten mitgegeben hast. Grüße vom marabu |
Re: Zugrifstverletzung, xml .-.
DAnke erstmal für die antwort,
hilft mir leider noch nicht sehr viel weiter. Also die daten die es verwerten soll sind diese hier: ![]() ~.echo |
Re: Zugrifstverletzung, xml .-.
Schau mal:
Code:
Wenn du da player suchst, dann suchst du an der falschen Stelle. So könnte es besser funktionieren:
documentElement = stats
documentElement.childNodes.First = server documentElement.childNodes.First.childNodes = (version, owner, servername, uptime)
Delphi-Quellcode:
marabu
begin
// ... SIN := XMLDoc.DocumentElement.FindNode('players'); ANE := SIN.childNodes.First; repeat // ... |
Re: Zugrifstverletzung, xml .-.
Also,
Delphi-Quellcode:
Was soll das bewirken, zumindest scheint der teil nicht ganz richtig zu sein.
ANE := SIN.First;
Das wird bei mir gleich als fehler markiert. ~.echo |
Re: Zugrifstverletzung, xml .-.
Hallo,
alternativ wäre XPath auch geeignet. Hier mal mit MSXML6:
Delphi-Quellcode:
Gruß
var
XML: IXMLDOMDocument3; Nodes: IXMLDOMNodeList; C: Integer; begin XML := CoDOMDocument60.Create; // Dokument erzeugen if XML.load('stat.xml') then // Datei laden begin Nodes := XML.documentElement.selectNodes('players/player'); // Nodes wählen for C := 0 to Nodes.length - 1 do ListBox1.Items.Add(Nodes[C].childNodes[0].text); // Spielernamen in Listbox ausgeben end; end; xaromz |
Re: Zugrifstverletzung, xml .-.
Danke erstmal,
Da blick ich jetzt noch nicht so ganz durch, verwende xml zum ersten mal, daher muss ich mich da erst etwas einarbeiten. ~.echo |
Re: Zugrifstverletzung, xml .-.
Zitat:
Delphi-Quellcode:
marabu
ANE := SIN.childNodes.First;
while Assigned(ANE) do begin // ... ANE := ANE.NextSibling; end; |
Re: Zugrifstverletzung, xml .-.
ALso nochmal danke für die idee,
aber scheint bei mir immernoch nicht zu klappen, kommt immernoch ie eh und je eine zugriffsverletzung. Könnte es an etwas anderes liegen=? Also das program is folgendermaßen aufgebaut. 1. Download der xml (funktioniert) 2. Auslesen der xml (funktioniert nicht) 3. Löschen der xml (funktioniert)
Delphi-Quellcode:
Also der fehler müsste in diesem teil liegen, da ich andere dinge schon in {} gesetzt habe die nicht unmittelbar beteiligt sind.
var
{...} SIN : IXMLNode; ANE : IXMLNode; Sname, srace, sclass, slevel: WideString; begin {download der file} {code von oben}
Delphi-Quellcode:
XMLDoc.FileName := 'Dateiname';
XMLDoc.Active:=True; SIN:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('players'); ANE := SIN; repeat sname := ANE.ChildNodes['name'].Text; srace := ANE.ChildNodes['race'].Text; sclass := ANE.ChildNodes['class'].Text; slevel := ANE.ChildNodes['level'].Text; ANE := ANE.NextSibling; until ANE = nil; |
Re: Zugrifstverletzung, xml .-.
Liste der Anhänge anzeigen (Anzahl: 1)
Schau dir mal den Code an.
marabu |
DP-Maintenance
Dieses Thema wurde von "sakura" von "Sonstige Fragen zu Delphi" nach "XML" verschoben.
|
Re: Zugrifstverletzung, xml .-.
Ok habs jetzt endlich funktionstüchtig. Danke an alle hier.
~.echo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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