2016-11-09 9 views
0

In meinem XML habe ich eine Reihe von IDs und REF-Attribute.Xquery: Wie extrahiert man Informationen aus einem REF/ID

unter Vereinfacht:

<library> 
<book ID="123"> 
    <author ref="33"></author> 
    <Info>Vulpes Vulpes, Canis Lupus</info> 
    <about>Programming</about> 
</book> 

<author ID="33"> 
    <firstname>John</firstname> 
    <lastname>McLovin</lastname> 
</author> 
</library> 

So möchte ich eine XQuery verwenden, um die Informationen über den Autor zu extrahieren, das REF-Attribut unter Buch verwenden.

for $x in library/book 
where $x/about = "programming" 
return data ($x/library/book/author/@ref) 

Mit dieser Methode extrahieren ich die REFNUMBER 33. Aber ich die Daten wollen, die = „33“ Punkte ref, die unter ID = „33“ befindet. Ich möchte Vorname und Nachname als Ergebnis.

Ist das möglich? Wenn nicht so, wie ist es möglich?

Antwort

0
for $x in library/book 
where $x/about = "Programming" 
return data (library/author[@ID=$x/author/@ref]) 
+0

Haben Sie eine alternative Lösung? Das scheint nicht zu funktionieren. Ist das $ x in Ihrer Lösung gleich der ID im Autor? – Magnus

+0

Ich habe es [hier] (http://www.xpatestester.com/xquery) überprüft, aber ich musste Ihr XML-Snippet korrigieren: schließendes Tag zu. Als Ergebnis bekomme ich John McLovin. Brauchst du das? –

+0

Nevermind, habe ich endlich Ihre Anfrage verstanden und wie es dank Ihrer Verbindung und Lösung funktioniert hat. Vielen Dank! – Magnus

Verwandte Themen