Einzelnen Beitrag anzeigen

Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#1

XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 08:54
Morgen zusammen,
ich habe mein Programm auf OmniXML umgestellt um nicht von einer MSXML Installation abhängig zu sein. Hat soweit auch alles geklappt, bis auf das meine XML Datei nicht mehr in eine TreeView eingelesen wird. Das Eintragen eines Programmes in die XMl Datei funktioniert einwandfrei...

Der Code zum Auslesen und Importieren der XML Datei in die Treeview läßt sich ohne Fehlermeldung problemlos Kompilieren.

Hier mal der Code:
Delphi-Quellcode:
Var Node : IXMLNode;
        Nodes : IXMLNodeList;
 TVParentNode : TTreeNode;
 TVChildNode : TTreeNode;
            i : integer;
begin
  // Firewalls in Treeview aufnehmen
  TVParentNode := TV.Items.Add(nil,'Firewalls');
  TVParentNode.ImageIndex := 0;

  Nodes := xmlDoc.SelectNodes('/programme/Firewalls');

  for i := 0 to Nodes.length - 1 do
   begin
     Node := Nodes.item[i].selectSingleNode('Name');
                                      // Nodes.item[i].text (Gesammter Text von einer Firewall Node)
     TVChildNode := TV.Items.AddChild(TVParentNode, Node.text);
     TVChildNode.ImageIndex := 0;
   end;
Die XML Datei ist wie folgt aufgebaut:
XML-Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<programme>
 <WLan>
   <Name>Super Testprogramm</Name>
   <Webseite>http://www.pc-adviser.de</Webseite>
   <Autor></Autor>
   <Version>1.0</Version>
   <Grafik></Grafik>
   <Typ>Freeware</Typ>
   <Beschreibung />
 </WLan>
 <Firewalls>
   <Name>ErsterWin2K Eintrag</Name>
   <Webseite>http://www</Webseite>
   <Autor />
   <Version />
   <Typ>Freeware</Typ>
   <Sprache>Deutsch</Sprache>
   <Grafik>Tools\ErsterWin2K Eintrag\ErsterWin2K Eintrag.jpg</Grafik>
   <ProgPfad>Tools\ErsterWin2K Eintrag\</ProgPfad>
   <DateiGroesse>0</DateiGroesse>
   <Beschreibung>Eintragen geht!</Beschreibung>
 </Firewalls>
</programme>
Wie gesagt, unter MSXML 4 lief es ohne Probleme.

Folgendes soll der Code tun:
In der XML Datei gibt der obere Node wie z.B "WLan" oder "Firewalls" die Kategorie des Programms an. Nun soll das Programm alle Programme einer Kategorie in der Treeview unter einer "Node" zusammenfassen.
Zurzeit trage ich die Programmkategorie von Hand in die Treeview und lese dann die dazu gehörenden Programm aus. Habt ihr eine Idee wie ich das ganze am besten auch noch dynamsich gestalte?

Vorangig sollte es aber erstmal wieder unter OmniXML laufen...

Thanx
Salomon
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat