AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Attribute ?

Ein Thema von Bit Juggler · begonnen am 27. Feb 2004 · letzter Beitrag vom 1. Mär 2004
Antwort Antwort
Bit Juggler
(Gast)

n/a Beiträge
 
#1

Attribute ?

  Alt 27. Feb 2004, 21:17
Hallo,
nachdem ich mittlerweile das XML Tutorial von Chris auswendig kann (vorwärts wie rückwärts )
habe ich mit XML Dateien OHNE Attribute keinerlei Probleme mehr...
Wenn ich jedoch eine XML Datei MIT Attributen habe komme ich einfach nicht weiter!
Ich habe in einem Thread weiter unten eine Prozedur von Mathias Simmack verbessert bekommen (er war auch der Author dieser Prozedur ) so das ich die XML Datei in einem TreeView darstellen kann.
Klappt ja auch wunderbar, nur möchte ich gerne eine andere Darstellung haben!

Als erstes hier einmal die XML Datei
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>
Ich hätte im TreeView nun gerne folgende Ansicht:

Ein Ordner mit der Bezeichnung "Favoriten" mit den unterordnern KLASSIK, HIPHOP, usw...
Ein Ordner mit der Bezeichnung "Musik" mit den unterordnern MTV Classic, usw...
Aktuell werden die Ordner genau so bennat wie es in der XML Datei steht, das heist mit allen Attributen usw. , und genau das will ich ja nicht!

Ich habe de aktuelle Ansicht zum besseren verständniss mal angehängt!

Gruß Bit

P.S.
Ich habe jetzt wirklich seit 2 Tagen einiges ausprobiert, zumal ich ja auch einige Anhaltspunkte genannt bekommen habe -> Erfolglos!
Manchmal dauert es echt ewig bis mir ein Licht aufgeht...
Miniaturansicht angehängter Grafiken
ansicht.jpg  
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Attribute ?

  Alt 27. Feb 2004, 21:21
Hi,
das schöne an XPath (das mit den UNIX-Verzeichnissen aus dem Tutorial) ist, dass du selbst Attribute einbeziehen kannst.

Delphi-Quellcode:
sXPath := '/LISTE/Ordner[@name="Favoriten"]'; // sXPath: string;
xmlNodes := xmlDoc.selectNodes(sXPath); // xmlNodes: IXMLDOMNodeList
Ich hoffe damit kommst du schonmal ein Stück weiter.

Chris
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Attribute ?

  Alt 28. Feb 2004, 08:54
Grundsätzlich richtig, @Chakotay, aber ich würde die Attribut-Angabe nicht in eckige Klammern setzen, weil er dadurch ja nur den "Ordner" mit dem "name"-Attribut Favoriten findet. Sinnvoller wäre es, gleich auf die "name"-Attribute zu gehen:
Code:
/LISTE/Ordner/@name
Damit hast du, @Bitjuggler, gleich alle Namen, die du als Hauptknoten für deinen Tree-View benutzen kannst. Diesen Namen verwendest du dann auch als Vergleichswert um die untergeordneten "platz"-Knoten (bzw. deren "name"-Attribute) auszulesen. Du brauchst also min. zwei Variablen vom Typ IXMLDOMNodeList und zwei Schleifen.

Wenn es noch tiefer gehen soll, dann kommst du IMHO besser weg wenn du die "GetThoseNodes"-Prozedur anpasst.
  Mit Zitat antworten Zitat
Bit Juggler
(Gast)

n/a Beiträge
 
#4

Re: Attribute ?

  Alt 29. Feb 2004, 13:39
Hi,
danke für die Tips aber anscheinend bin ich zu doof dazu...
Eventuell fehlt mir auch noch etwas know-how in ObjectPascal, auf jeden Fall bekomme ich es nicht hin
Ich werde noch einmal versuchen die Prozedur von Mathias umzuschreiben, und ansonsten versuche ich das ganze in ein paar wochen noch einmal!
Jetzt heißt es ersteinmal : Object Pascal Sprachrefenrenz -> oder: lesen bis das Auge tränt...

Tschüß und einen schönen Sonntag
Bit
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Attribute ?

  Alt 29. Feb 2004, 15:10
Probier´s mal so:
Delphi-Quellcode:
nl := xmldoc.selectNodes('/LISTE/Ordner/@name');
if(nl.length > 0) then
  for i := 0 to nl.length - 1 do
  begin
    tn := TreeView1.Items.Add(nil,nl.item[i].text);
Dann nach untergeordneten "platz"-Knoten suchen, und auch hier ist das "name"-Attribut wieder von besonderer Bedeutung:
Delphi-Quellcode:
    subnl := xmldoc.selectNodes('/LISTE/Ordner[@name="' +
      nl.item[i].text + '"]/platz/@name');
    if(subnl.length > 0) then
      for j := 0 to subnl.length - 1 do
        TreeView1.Items.AddChild(tn,subnl.item[j].text);
  end;
Aber das ist nur die simple Variante. Wie gesagt: wenn du noch "tiefer" in die XML-Struktur willst (sprich: evtl. noch andere Attribute im Tree-View darstellen), dann musst du sehen ob du mit einer angepassten Prozedur besser wegkommst.
  Mit Zitat antworten Zitat
Bit Juggler
(Gast)

n/a Beiträge
 
#6

Re: Attribute ?

  Alt 29. Feb 2004, 22:06
Hallo Mathias,
vielen Dank!
Das liefert mir im TreeView genau die Ansicht die ich mir gewüncht habe.
Nun hab ich endlich auch mal ein super Beispiel bekommen das es mir wohl in Zukunft erleichtern sollte wenn ich mal wieder XML Dateien mit Attribute bearbeiten muss!


Gruß Bit
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: Attribute ?

  Alt 29. Feb 2004, 22:38
Hm, wenn´s dir um Beispiele geht, dann bin ich mal so frei und verweise dich auf ein kleines Programm, das vielleicht nicht gerade das "Tool des Jahres" werden wird, das aber auch mit XML arbeitet: phpBB-Suchtag Builder.
  Mit Zitat antworten Zitat
Bit Juggler
(Gast)

n/a Beiträge
 
#8

Re: Attribute ?

  Alt 1. Mär 2004, 22:40
Danke, werde ich mir anschauen
  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 22:23 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