AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Problem mit dem einlesen einer XML-Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit dem einlesen einer XML-Datei

Ein Thema von Bit Juggler · begonnen am 24. Feb 2004 · letzter Beitrag vom 3. Dez 2004
 
Bit Juggler
(Gast)

n/a Beiträge
 
#1

Problem mit dem einlesen einer XML-Datei

  Alt 24. Feb 2004, 19:58
Hallo,
ich habe das XML Tutorial von Choktay Gründlich gelesen und konnte alles an seinem Beispiel auch wunderbar nachvollziehen.
Nun habe ich hier aber eine XML-Datei die etwas anderst aufgebaut ist, und egal wie ich es auch drehe und wende bekomme ich diese Datei nicht richtig ausgelsen!
Ich habe zu meinem Problem auch schon hier in der DP gesucht, doch selbst eine Procedure von Matthias Simmack konnte mein Problem nicht lösen (GetThoseNodes)

Delphi-Quellcode:

//xmlDoc := CoDOMDocument40.Create usw. spare ich mir mal hier zu posten!
//Ich lade die xml Datei 100% richtig, denn es wird ja auch was angezeigt
//nur nicht korreckt!
//Ich schreibe das nur um dies als Fehler schon einmal auszuschließen!

procedure TForm1.GetThoseNodes(const xmlParent: IXMLDOMNode;
    tvParent: TTreeNode);
  var
    tn : TTreeNode;
    i : integer;
    s : string;
  begin
    // wenn der XML-Parent "nil" ist, dann raus!
    if(xmlParent = nil) then exit;

    // wenn der XML-Parent ein Element ist, dann
    // den Namen ermitteln, ...
    if(xmlParent.Get_nodeType = NODE_ELEMENT) then
      s := xmlParent.Get_nodeName
    // ... ansonsten den Inhalt
    else
      s := xmlParent.Get_nodeValue;

    // ist der TreeView-Parent "nil", dann neuen
    // Knoten an oberster Ebene einfügen, ...
    if(tvParent = nil) then tn := tv.Items.Add(nil,s)
    // ... ansonsten den Parent benutzen und den
    // neuen Knoten darunter einfügen
      else tn := tv.Items.AddChild(tvParent,s);

    // hat der XML-Parent noch untergeordnete Elemente?
    if(xmlParent.childNodes.length > 0) then
    // Ja, dann in einer Schleife diese Prozedur
    // hier erneut aufrufen, ...
      for i := 0 to xmlParent.childNodes.length - 1 do
    // ... und dabei das jeweilige Element sowie den
    // eben erzeugten TreeView-Knoten als Parents übergeben
        GetThoseNodes(xmlParent.childNodes.item[i],tn);
  end;
Es werden zwar im TreeView neue knoten mit entsprechenden Bezeichnungen erstellt, jedoch sozusagen ohne Inhalt!
Ich hoffe das mir das jemand erklären kann, anscheinend ist das ganze für einen Anfänger wohl noch etwas heavy...

XML-Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
- <LISTE>
- <Ordner name="Favoriten" hidden="0" locked="0">
  <platz serviceID="0008" name="KLASSIK" onair="0085" />
  <platz serviceID="000A" name="HIPHOP" onair="0085" />
  <platz serviceID="000B" name="SOUL" onair="0085" />
  <platz serviceID="002B" name="GROOVE" onair="0085" />
  <platz serviceID="0009" name="MODERN" onair="0085" />
  </Ordner>
- <Ordner name="Musik" hidden="0" locked="0">
  <platz serviceID="0004" name="MTV Classic" onair="013E" />
  <platz serviceID="6FEE" name="MTV HITS" onair="0001" />
  <platz serviceID="6FF8" name="MTV HITS." onair="0001" />
  <platz serviceID="6FF9" name="MTV Base." onair="0001" />
  <platz serviceID="0006" name="MTV 1" onair="013E" />
  <platz serviceID="6FF3" name="MTV 2" onair="0001" />
  </Ordner>
</LISTE>
Gruß Bit
  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 04:59 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