AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML in Treeview einlesen mit OmniXML
Thema durchsuchen
Ansicht
Themen-Optionen

XML in Treeview einlesen mit OmniXML

Ein Thema von Salomon · begonnen am 3. Mär 2005 · letzter Beitrag vom 3. Mär 2005
Antwort Antwort
Benutzerbild von Salomon
Salomon

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

XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 07: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
Delphi_Fanatic

Registriert seit: 24. Mär 2004
201 Beiträge
 
#2

Re: XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 08:38
Ich habe ganz genau das mal vor ca. 1 1/2 Jahren gemacht : Eine Delphi-Routine, die eine XML-Datei einliesst und in
einer TreeView darstellt.
Ich würde mir an Deiner Stelle keine Gedanken über omnni..oder sonst was machen ... schreib' Dir einfach eine eigene
Routine zum Analysieren / Einlesen von XML-Dateien und dann bist Du immer auf der "sonnigen Seite" .
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

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

Re: XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 09:07
Du meinst eine eigene Routine zum Einlesen der XML Datei?
Das ist mir zu aufwendig, mit Omni XML sollte das schon schnell und einfach gehen.

Hab nur keine Ahnung warum der nichts mehr einliest
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

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

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

Re: XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 10:42
Delphi-Quellcode:
  Nodes := xmlDoc.SelectNodes('/programme/Firewalls');
  showmessage (inttostr(nodes.Length));
Das auswählen der Nodes als Liste klappt nicht, da die Liste immer die Länge 0 hat. Gibt es da eine Möglichkeit dies auch anders zu realisieren?
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

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

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 10:44
Zitat von Salomon:
Morgen zusammen,
ich habe mein Programm auf OmniXML umgestellt um nicht von einer MSXML Installation abhängig zu sein.
Naja ob du nun von MS oder einem anderem abhängig bist

test doch mal Open XML



Bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

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

Re: XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 11:21
Das ist so nicht ganz richtig. Bei OmniXML ist alles was benötigt wird mit in der EXE Datei enthalten. Habe ich auf meinem neu installiertem WinXP ausprobiert.
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

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

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

Re: XML in Treeview einlesen mit OmniXML

  Alt 3. Mär 2005, 13:59
So, funktioniert endlich. Und zwar musste der Pfad etwas abgeändert werden:
Delphi-Quellcode:
  // Nodes := xmlDoc.SelectNodes('/programme/Firewalls'); // MS XML Syntax
  Nodes := XMLDoc.DocumentElement.SelectNodes('Firewalls'); // Omni XML Syntax
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  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:15 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