20 Stimmen

Verwendung von XQuery/XPath zum Abrufen des Attributwerts des übergeordneten Knotens eines Elements

Angesichts dieses Xml-Dokuments:

<?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 dieser 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 erhalte den folgenden Fehler:

"Cannot create an attribute node (f) whose parent is a document node". 

Es scheint, dass die ../-Operation die übereinstimmenden Knoten aus dem Rest des Dokuments entfernt, so dass es denkt, es sei der Dokumentenknoten.

Ich bin offen für andere Ansätze, aber die Auswahl des übergeordneten Attributs hängt davon ab, dass das untergeordnete Attribut einen bestimmten Teilstring enthält.

Zum Wohl!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X