![]() |
[TXMLDocument] Problem mit Darstellung in Treeview
Hallo,
ich will eine solch-strukturierte XML-Datei in einer Treeview darstellen:
XML-Code:
Das mach' ich rekursiv und es funtioniert auch alles, aber wenn innerhalb eines title-Blocks mehrere <Source> Elemente sind, wird nur der erste genommen. Der Rest wird ignoriert. Ich will aber alle als Nodes darstellen. Hier etwas Quellcode:
<Group title="Blabla" comment="">
<Group title="Blablabla" comment=""> <Document title="Blalba"> <Source>http://www.blabla.com</Source> </Document> <Document title="Blablabla"> <Source>http://www.blabla.com</Source> </Document> <Document title="Blablabla"> <Source>http://www.blabla.com</Source> <Source>http://www.blablablabla.com</Source> </Document>
Delphi-Quellcode:
Kann mir jemand weiterhelfen?
var
Node : IXMLNode; trn: TTreenode; begin [..] if Node = nil then Exit; // tree ist meine treeview trn := tree.Items.AddChild(trn, Node.Attributes['title']); if trim(Node.ChildNodes.Nodes['Source'].Text) <> '' then trn := tree.Items.AddChild(trn, Node.ChildNodes.Nodes['Source'].Text); Gruß -- |
Re: [TXMLDocument] Problem mit Darstellung in Treeview
hmmm ungetestet, sollte aber funzen:
Delphi-Quellcode:
var
Node : IXMLNode; trn: TTreenode; dtrn: TTreeNode; i: integer; begin if Node = nil then Exit; // tree ist meine treeview trn := tree.Items.AddChild(trn, Node.Attributes['title']); for i := 0 to node.ChildNodes.count - 1 do begin if trim(node.ChildNodes.Nodes[i].Text)<>'' then begin dtrn := tree.Items.AddChild(trn, Node.ChildNodes.Nodes['Source'].Text); end; end; |
Re: [TXMLDocument] Problem mit Darstellung in Treeview
Hi Morphie,
leider nicht; nun erkennt er zwar die richtige Anzahl, aber jetzt steht der selbe erste Wert eben zwei- oder dreimal untereinander. In der Zwischenzeit hab ich herausgefunden, dass man mit
Delphi-Quellcode:
zum nächsten Eintrag gehen kann, aber ich kann das Ganze einfach nicht rekursiv verpacken. Ich gelange immer in eine Endlosschleife...
tree.Items.AddChild(trn, Node.ChildNodes.Nodes['Source'].NextSibling.Text
Gruß -- |
Re: [TXMLDocument] Problem mit Darstellung in Treeview
Hab's jetzt, musste nur ein bisserl vertauschen
Delphi-Quellcode:
Danke für die Hilfe!
if trim(Node.ChildNodes.Nodes['Source'].Text) <> '' then
begin for j := 0 to node.ChildNodes.count - 1 do begin dtrn := tree.Items.AddChild(trn, Node.ChildNodes.Nodes[j].Text); end; end; Gruß -- |
Re: [TXMLDocument] Problem mit Darstellung in Treeview
klar, sorry, das hab ich übersehen ;-)
wie gesagt, nicht getestet... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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