AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Treeview mit XML füllen

Offene Frage von ".chicken"
Ein Thema von .chicken · begonnen am 13. Dez 2007 · letzter Beitrag vom 29. Dez 2007
 
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#1

Treeview mit XML füllen

  Alt 13. Dez 2007, 17:52
So, habe im Titel genanntes versucht. Habe mir auch einige Threads hier durchgelesen aber das nicht richtig verstanden, bzw konnte die Beispiele nicht ausführen.

Habe versucht das ganze rekursiv auszuführen und folgenden Code bekommen.
Delphi-Quellcode:
procedure TForm1.UpdateTree(Nodes: IXMLDOMNodeList);
var
  i: Integer;
  aTree: TTreeNode;
begin
  for i := 0 to Nodes.length - 1 do
  begin
    DialogTree.Items.AddChild(DialogTree.Selected, Nodes.item[i].nodeValue);
    if Nodes.item[i].childNodes.length > 0 then
    begin
      DialogTree.Selected := DialogTree.Selected.Item[0];
      UpdateTree(Nodes.item[i].childNodes);
    end;
  end;
end;

procedure TForm1.GetDialog(DialogName: String);
var
  i, j: Integer;
  NodeList: IXMLDOMNodeList;
  TreeNode: TTreeNode;
begin
  DialogTree.Items.Clear;
  Nodelist := xmlDoc.documentElement.selectNodes(DialogName);
  DialogTree.Items.BeginUpdate;
  DialogTree.Items.AddFirst(nil, DialogName);
  DialogTree.Selected := DialogTree.TopItem;
  UpdateTree(Nodelist);
  DialogTree.Items.EndUpdate;
end;
Ich gehe also immer wieder die Länge der NodeList durch, die ich aus dem XML Dokument habe. Dann füge ich jeweils ein Item als Child des gewählten Items des Treeviews hinzu, prüfe ob noch ChildNodes in der NodeList vorhanden sind und wenn, dann setze ich das neu hinzugefügte TreeViewItem selected und rufe die Prozedur nochmal mit den ChildNodes der NodeList aus.
Mist das is schwer zu erklären, ich hoffe ihr versteht was ihc meine. Es klappt aber nicht. Er fügt die Items wild durcheinander hinzu.

Das ist meine XML-Datei:
Zitat:
<?xml version='1.0' encoding='ISO-8859-1'?>
<dialogsammlung>
<Gespraech_mit_dem_Clown>
<sentence>Hallo, ich bin Marry, der Clown</sentence>
<option>Hi, ich bin Todd. Sehr erfreut!</option>
<option>Das interessiert mich doch nicht!</option>
</Gespraech_mit_dem_Clown>
<Gespraech_mit_Lisa>
<sentence>Hi, ich bin Lisa, das Supermodel</sentence>
<option>Du hast wirklich wahnsinnig große...Augen!</option>
<option>Sorry, aber ich habe keine Zeit für sowas. Ich muss die Welt retten!</option>
</Gespraech_mit_Lisa>
</dialogsammlung>
Da diese aber unbeschränkt viele Verschachtelungen haben kann, stellt sich das alles für mich als ein Problem dar.

Weiss wer wo der Fehler liegt? Wie mach ichs besser?

Danke schonmal!
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:44 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 by Thomas Breitkreuz