![]() |
TXMLDocument ChildNodes, maximum 35?
Hi,
steh hier vor einen Problem. Ich habe diese Funktion:
Delphi-Quellcode:
Nun ist mein ChildNode.Count 39, aber bei i = 35 kommt die Meldung Listenindex überschreitet Maximum (35)?
XMLDocument.LoadFromFile('C:\MyTest.xml');
ChildNodes := XMLDocument.DocumentElement.ChildNodes; If ChildNodes <> NIL then begin for i := 0 to ChildNodes.Count - 1 do //do copy node: Node := ChildNodes.Nodes[i]; If (Node <> NIL) and (Node.Attributes['name'] = 'Service') then //do stuff end; Oder geht es auch einfacher aus den Childnodes diesen Node zu finden ohne eine For-Schleife? |
Re: TXMLDocument ChildNodes, maximum 35?
Nutzt du Klassen oder Interfaces? Versuch mal, alles was mit XML zu tun hat auf Interfaces umzustellen. Ich hatte auch einige unerklärliche Probleme, als ich die Klassen direkt genutzt habe und somit Interfaces und Klassen vermischt habe. Nachdem ich alles konsequent auf Interfaces umgestellt hatte, ging es dann.
|
Re: TXMLDocument ChildNodes, maximum 35?
Probier es mal so:
var FNode: IXMLNode; FNode := XMLDocument.DocumentElement.ChildNodes.First; while assigned(FNode) do begin If (Node <> NIL) and (Node.Attributes['name'] = 'Service') then begin //do stuff end; FNode := FNode.NextSibling; end; |
Re: TXMLDocument ChildNodes, maximum 35?
Wo genau kommt denn dieser Fehler? (welche Zeile)
PS: deine For-Schleife strimmte so nicht, denn das IF war dort nicht enthalten
Delphi-Quellcode:
XMLDocument.LoadFromFile('C:\MyTest.xml');
ChildNodes := XMLDocument.DocumentElement.ChildNodes; If ChildNodes <> NIL then begin for i := 0 to ChildNodes.Count - 1 do begin //do copy node: Node := ChildNodes.Nodes[i]; If (Node <> NIL) and (Node.Attributes['name'] = 'Service') then //do stuff end; end;
Delphi-Quellcode:
Einfacher und ohne Schleife geht es z.B. über
XMLDocument.LoadFromFile('C:\MyTest.xml');
Node := XMLDocument.DocumentElement.ChildNodes[0]; while Assigned(Node) and (Node.Attributes['name'] <> 'Service') do Node := Node.NextSibling; If Assigned(Node) then //do stuff ![]() |
Re: TXMLDocument ChildNodes, maximum 35?
Ich hatte damit noch nie Probleme. Der Verdacht liegt nahe, dass es ein anderes Problem gibt, aber wenn ich deinen Code anschaue habe ich das Gefühl, dass du uns einen Teil verschweigst...
|
Re: TXMLDocument ChildNodes, maximum 35?
Dankeeeee! :hello:
Da kann ich meine Baumstruktur ja auch mit dem XML Dokument aufbauen. Und danach schauen, ob das mit Treenode genauso geht. Juhuuuuu! :cheers: Könnte ja mit Treenode.Items[] auch gehen. Genau das was ich ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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