Einzelnen Beitrag anzeigen

s-off
(Gast)

n/a Beiträge
 
#1

Xpath - alle Kinder eines bestimmten Elternteils

  Alt 17. Mai 2006, 20:40
Hallo nochmal,

habe immer noch folgende XML-Datei:

XML-Code:
<?xml version='1.0' encoding='UTF-8'?>
<document>
   <ordner>
      <name>Ordner1</name>
         <datei>
            <name>Datei1</name>
            <groesse>Groesse1</groesse>
            <attribut>Attribut1</attribut>
         </datei>
         <ordner>
            <name>Ordner2</name>
               <datei>
                  <name>Datei2</name>
                  <groesse>Groesse2</groesse>
                  <attribut>Attribut2</attribut>
               </datei>
               <datei>
                  <name>Datei3</name>
                  <groesse>Groesse3</groesse>
                  <attribut>Attribut3</attribut>
               </datei>
               <datei>
                  <name>Datei4</name>
                  <groesse>Groesse4</groesse>
                  <attribut>Attribut4</attribut>
               </datei>
               <ordner>
                  <name>Ordner3</name>
                     <datei>
                        <name>Datei2</name>
                        <groesse>Groesse2</groesse>
                        <attribut>Attribut2</attribut>
                     </datei>
                     <datei>
                        <name>Datei3</name>
                        <groesse>Groesse3</groesse>
                        <attribut>Attribut3</attribut>
                     </datei>
                     <datei>
                        <name>Datei4</name>
                        <groesse>Groesse4</groesse>
                        <attribut>Attribut4</attribut>
                     </datei>
               </ordner>
         </ordner>
   </ordner>
</document>
Was ich jetzt an Informationen habe, sind die Ordnernamen, also beispielsweise dieses hier: <name>Ordner1</name>

Ich möchte nun auf alle Dateien <datei> und deren Elemente <name>, <groesse> und <attribut> zugreifen, die sich innerhalb dieses Ordners befinden.

Leider bekomme ich es nicht hin, die XPath-Abfrage ordentlich zu erstellen

Habe es versucht mit

Delphi-Quellcode:
var
   nodeFolder: IXMLDOMNode;
   nodesFiles: IXMLDOMNodeList;
begin
nodeFolder := xmlDoc.documentElement.selectSingleNode('ordner[name="' + Data.Caption + '"]');
nodesFiles := xmlDoc.documentElement.selectNodes(nodeFolder.nodeName + '/datei');
[...]
wobei Data.Caption der Name des Ordners ist. Bei diesem Konstrukt knallt es allerdings in der zweiten Zeile (Exception), da nodeFolder := NIL bleibt

Ich blicke an XPath einfach net dran lang
  Mit Zitat antworten Zitat