AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Treeview mit XML füllen

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

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

Re: Treeview mit XML füllen

  Alt 14. Dez 2007, 17:15
Ok, es klappt noch nicht ganz wie ich es möchte. Das hier 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!
<collection>
<option>
Hi, ich bin Todd. Sehr erfreut!
<sentence>
Todd, kann ich dich um einen Gefallen bitten?
<collection>
<option>
Was darfs denn sein?
<sentence>
Ich habe meine Nase verloren, würdest du sie suchen?
<ende />
</sentence>
</option>
<option>
Kannst du das bitte nochmal wiederholen?
<move>Hier kommt dann eine Anweisung, wohin das Script sich bewegen soll, zB zurück zum ersten Sentence ("Hallo, ich bin Marry, der Clown!")</move>
</option>
<option>
Ich habe keine Zeit für sowas!
<ende />
</option>
</collection>
</sentence>
</option>
<option>
Lass mich in Ruhe! Ich habe keine Zeit!
<ende />
</option>
</collection>
</sentence>
</Gespraech_mit_dem_Clown>
</dialogsammlung>
So im Anhang habe ich ein Bild, wie das in den Treeview eingefügt wird. Und hier kommt meine Prozedur:
Delphi-Quellcode:
procedure TForm1.UpdateTree(Nodes: IXMLDOMNodeList; ParentNode: TTreeNode);
var
  i, j: Integer;
  aTree, NewParent: TTreeNode;
  subNode: IXMLDOMNode;
begin
  for i := 0 to Nodes.length - 1 do
  begin
    subNode := Nodes.item[i];
    aTree := DialogTree.Items.AddChild(ParentNode, subNode.Text);
    //Präfixe hinzufügen
    aTree.ImageIndex := 0;
    for j := 1 to high(PRAEFIXE) do
      if subNode.nodeName = PRAEFIXE[j] then
        aTree.ImageIndex := j;
    if subNode.nodeName = 'collectionthen
      aTree.Text := 'Collection'
    else
    if subNode.nodeName = 'endethen
      aTree.Text := 'Ende';
    //Präfixe Ende
    if subNode.childNodes.length > 0 then
    begin
      NewParent := aTree;
      UpdateTree(subNode.childNodes, NewParent);
    end;
  end;
end;
So, ich denke ihr seht wo das Problem ist. Die ganzen Sachen werden alle verdoppelt, dadurch dasss sie nochmal als SubNode angezeigt werden. Außerdem wird nicht nur der Text des aktuellen Nodes, sondern auch der aller Subnodes hinzugefügt.

Wie lässt sich das verhindern?
Stehe da etwas auf dem Schlauch :-\
Angehängte Grafiken
Dateityp: bmp dialogexample_204.bmp (1,50 MB, 57x aufgerufen)
  Mit Zitat antworten Zitat
 


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 20:17 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