Vor diesem XML-Dokument zu erhalten:XQuery/XPath Mit dem Attributwert eines Elements übergeordneten Knoten
<?xml version="1.0" encoding="UTF-8"?>
<mydoc>
<foo f="fooattr">
<bar r="barattr1">
<baz z="bazattr1">this is the first baz</baz>
</bar>
<bar r="barattr2">
<baz z="bazattr2">this is the second baz</baz>
</bar>
</foo>
</mydoc>
, die von diesem xquery verarbeitet wird:
let $d := doc('file:///Users/mark/foo.xml')
let $barnode := $d/mydoc/foo/bar/baz[contains(@z, '2')]
let $foonode := $barnode/../../@f
return $foonode
ich die folgende Fehlermeldung erhalten:
"Cannot create an attribute node (f) whose parent is a document node".
es scheint, dass der ../ Betrieb Art ist vom Rest des Dokuments mit dem passenden Knoten zu entfernen, so dass es denkt, es ist der Dokumentknoten.
Ich bin offen für andere Ansätze, aber die Auswahl der Eltern hängt von dem Kind-Attribut, das eine bestimmte Unterzeichenfolge enthält.
Prost!
der Tat habe ich! Vielen Dank. –