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