AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi [TXMLDocument] Problem mit Darstellung in Treeview
Thema durchsuchen
Ansicht
Themen-Optionen

[TXMLDocument] Problem mit Darstellung in Treeview

Ein Thema von calculon · begonnen am 2. Aug 2008 · letzter Beitrag vom 2. Aug 2008
Antwort Antwort
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#1

[TXMLDocument] Problem mit Darstellung in Treeview

  Alt 2. Aug 2008, 15:10
Hallo,

ich will eine solch-strukturierte XML-Datei in einer Treeview darstellen:

XML-Code:
   <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>
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:

Delphi-Quellcode:
  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);
Kann mir jemand weiterhelfen?

Gruß
--
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#2

Re: [TXMLDocument] Problem mit Darstellung in Treeview

  Alt 2. Aug 2008, 15:23
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;
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#3

Re: [TXMLDocument] Problem mit Darstellung in Treeview

  Alt 2. Aug 2008, 15:42
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
tree.Items.AddChild(trn, Node.ChildNodes.Nodes['Source'].NextSibling.Text zum nächsten Eintrag gehen kann, aber ich kann das Ganze einfach nicht rekursiv verpacken. Ich gelange immer in eine Endlosschleife...

Gruß
--
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#4

Re: [TXMLDocument] Problem mit Darstellung in Treeview

  Alt 2. Aug 2008, 15:51
Hab's jetzt, musste nur ein bisserl vertauschen
Delphi-Quellcode:
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;
Danke für die Hilfe!

Gruß
--
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#5

Re: [TXMLDocument] Problem mit Darstellung in Treeview

  Alt 2. Aug 2008, 17:33
klar, sorry, das hab ich übersehen
wie gesagt, nicht getestet...
  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 14:42 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