Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Listbox aus den Namen von Nodes erzeugen (https://www.delphipraxis.net/10096-listbox-aus-den-namen-von-nodes-erzeugen.html)

billi 11. Okt 2003 15:54


Listbox aus den Namen von Nodes erzeugen
 
Hallo,
wie erzeuge ich am einfachsten/besten eine Listbox aus den Namen aller Nodes die ich so gefunden habe:

Delphi-Quellcode:
var
themen: IXMLDOMNodeList;
begin
themen := xmlDoc.documentElement.selectNodes('bilderdatenbank/*');
Wenn das XML-Document so aussähe...

<bilderdatenbank>
<sonstiges>
<Bild>
<name>IMGP0970</name>
<text>bal</text>
</Bild>
<Bild>
<name>IMGP0973</name>
<text>bli</text>
</Bild>
</sonstiges>
<heute>
<Bild>
<name>IMGP0974</name>
<text>blo</text>
</Bild>
</heute>
</bilderdatenbank>

... möchte ich dass in der Listbox nur zwei Einträge sind, nämlich: sonstiges und heute.

Ich hoffe ihr habt mein Anliegen verstanden.
gruß
billi

SirThornberry 11. Okt 2003 16:08

Re: Listbox aus den Namen von Nodes erzeugen
 
hab ich irgendwie nicht verstanden.
ich hätte jetzt gedacht du willst
<bilderdatenbank>
<sonstiges>
<Bild>
<name>IMGP0970</name>
<text>bal</text>
</Bild>
<Bild>
<name>IMGP0973</name>
<text>bli</text>
</Bild>
</sonstiges>
<heute>
<Bild>
<name>IMGP0974</name>
<text>blo</text>
</Bild>
</heute>
</bilderdatenbank>
in eine Listbox bringen aber da weiß ich nicht was du noch mit "sonstiges" und "heute" willst.
Was genau soll dann in der Listbox stehen

sonstiges
heute

?? bestimmt nicht so oder??

billi 11. Okt 2003 16:20

Re: Listbox aus den Namen von Nodes erzeugen
 
In der Listbox sollen nur die Namen der childes zu "bilderdatenbank" stehen, also das, was zw. den "<" ">" steht.

SirThornberry 11. Okt 2003 16:26

Re: Listbox aus den Namen von Nodes erzeugen
 
das ganze z.B.: in ne TStringlist einlesen und dann

Delphi-Quellcode:
var count: Integer;
    doadd: Boolean;
begin
  doadd := False;
  for count := 0 to liste.count - 1 do
  begin
   if liste.strings[count] = '<bilderdatenbank>' then doadd := True else
    if liste.strings[count] = '</bilderdatenbank>' then doadd := False else
     if doadd then Listbox1.items.add(liste.strings[count]);
  end;
end;

billi 11. Okt 2003 18:11

Re: Listbox aus den Namen von Nodes erzeugen
 
ganz ehrlich, das hab ICH diesmal nicht verstanden...
Warum kann man das nicht mit einer NodeList erreichen?...

Delphi-Quellcode:
var
themen: IXMLDOMNodeList;
i: integer;
begin
Cerweitert_themenliste.Items.BeginUpdate; //Cerweitert_themenliste ist eine Combo box
themen := xmlDoc.documentElement.selectNodes('/bilderdatenbank/*');
for i:=0 to (themen.length - 1) do begin
Cerweitert_themenliste.items.add(themen.item[i]); // das ist falsch... (siehe unten)
end;
Cerweitert_themenliste.Items.EndUpdate;
end;
Diese Zeile ist ja offensichtlich falsch:
Cerweitert_themenliste.items.add(themen.item[i]);
Kann man da nicht etwas einfacheres machen, das ich dann auch zumindestens verstehe, als das, was SirThornberry vorgeschlagen hat?

gruß
billi

billi 11. Okt 2003 19:32

Re: Listbox aus den Namen von Nodes erzeugen
 
has rausgefunden...
Delphi-Quellcode:
Cerweitert_themenliste.items.add(themen.item[i].basename);
gruß
billi


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 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