xPath: Eltern-Element auslesen
5 Kommentare
Ab und an kommt es vor, dass man über eine Xml-Struktur stolpert, deren xPath-Abfrage das Eltern-Element zurückliefern soll. Eigentlich eine simple Anforderung und die Lösung ist ebenso einfach, man denkt halt einfach nicht dran…
Ich gehe dabei von der folgenden Xml-Struktur aus:
1<?xml version="1.0" encoding="utf-8"?>
2<root>
3 <parent id="15">
4 <datachild>Diese Daten sind wichtig fuer mich</datachild>
5 <querychild flag="1" />
6 </parent>
7</root>
2<root>
3 <parent id="15">
4 <datachild>Diese Daten sind wichtig fuer mich</datachild>
5 <querychild flag="1" />
6 </parent>
7</root>
Das xPath-Query, welches mir alle Elemente mit gesetztem "flag"-Attribut zurückliefert, ist schnell erstellt:
1<cfset myResult = xmlSearch(myXml,"/root/parent/querychild[@flag='1']") />
Jetzt bin ich aber an den Daten im datachild-Node interessiert. Das heisst, ich benötige den kompletten parent-Node:
1<cfset myResult = xmlSearch(myXml,"/root/parent/querychild[@flag='1']/..") />
Einfach eine "Verzeichnisebene" nach oben, so wie früher. Da kommt mir doch ein geeigneter Werbeslogan in den Sinn: Weil einfach einfach einfach ist.