AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Mal wieder: XML in TreeView einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Mal wieder: XML in TreeView einlesen

Ein Thema von ringli · begonnen am 4. Feb 2005 · letzter Beitrag vom 5. Feb 2005
 
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#1

Mal wieder: XML in TreeView einlesen

  Alt 4. Feb 2005, 19:29
Hallo!

Ich möchte gerne XML für Konfigurationsdateien verwenden und nun versuche ich schon seit einigen Tagen (bis jetzt leider ziemlich erfolglos ) eine XML-Datei in einen TreeView einzulesen. Dabei verwende ich folgenden Code:

Delphi-Quellcode:
var
  benutzer, anwendung : IXMLDOMNodeList;
  Node, subNode : IXMLDOMNode;
  i, j: integer;
  tv : TTreeNode;

begin
  xmldoc := CoDOMDocument40.Create;
  xmldoc.setProperty('NewParser', true);
  xmldoc.load(ExtractFilePath(ParamStr(0)) + 'test.xml');

  TreeView.Items.BeginUpdate;
  TreeView.Items.Clear;

  benutzer := xmldoc.documentElement.selectNodes('benutzer');
  anwendung := xmldoc.documentElement.selectNodes('benutzer/anwendung');

  for i:= 0 to benutzer.length - 1 do
    begin
      Node := benutzer.item[i].selectSingleNode('benutzername');
      tv := TreeView.Items.Add(nil, Node.text);
      for j:= 0 to anwendung.length - 1 do
        begin
          subNode := anwendung.item[j].selectSingleNode('anwendungsname');
          TreeView.Items.AddChild(tv, subNode.text);
        end;
    end;

  TreeView.Items.EndUpdate;

end;
Dies ist die einzulesende XML-Datei (kleiner Auszug):

Code:
<?xml version="1.0"?>
<programmname>
  <benutzer>
    <benutzername>ABCD</benutzername>
    <passwort>123456</passwort>
    <domain>Testdomain</domain>
    <anwendung>
      <anwendungsname>Anwendung 1</anwendungsname>
      <pfad>datei.exe</pfad>
      <parameter></parameter>
    </anwendung>
    <anwendung>
      <anwendungsname>Anwendung 2</anwendungsname>
      <pfad>datei.exe</pfad>
      <parameter></parameter>
    </anwendung>
  </benutzer>
  <benutzer>
    <benutzername>EFGH</benutzername>
    <passwort>654321</passwort>
    <domain>Blabla</domain>
    <anwendung>
      <anwendungsname>Anwendung 1</anwendungsname>
      <pfad>datei.exe</pfad>
      <parameter></parameter>
    </anwendung>
  </benutzer>
</programmname>
Was problemlos klappt ist das Einlesen der Benutzernamen. Prinzipell klappt auch das Einlesen des Namens der Anwendung. Nur wird hier leider der Fehler gemacht das jede eingetragende Anwendung jedem Benutzer im Treeview zugeordnet wird. Wie man an der XML-Datei sieht (bzw. sehen sollte falls ich hier keinen Fehler gemacht habe) sollte das aber nicht so sein. Hat einer von euch vielleicht eine Idee was ich hier falsch mache?

P.S.: Habe auch schon hier im Forum gesucht aber noch keine wirkliche Lösung für mein Problem gefunden.
  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 12:34 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