2016-11-09 23 views
0

私のXMLには、IDとREF属性がいくつかあります。下簡体Xquery:REF/IDから情報を抽出する方法

<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> 

だから私は、この本の下でREF属性を使用して、著者に関する情報を抽出するために、XQueryを使用したいです。この方法で

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

私はrefnumber 33を抽出しかし、私はID =「33」の下に位置し、=「33」のポイントを、refのデータが欲しいです。私はfirstnameとlastnameを結果として望みます。

これは可能ですか?これが好きではないなら、どうすれば可能ですか?

答えて

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

代替手段がありますか?これはうまくいかないようです。あなたの解の$ xは作者のIDと同じですか? – Magnus

+0

私は[hier](http://www.xpathtester.com/xquery)を確認しましたが、xmlスニペットを修正する必要がありました。閉じるタグからに変更してください。結果として私はジョン・マクロビンを得る。それはあなたが必要とするものですか? –

+0

あなたの質問と、あなたのリンクとソリューションのおかげで、どうやってそれがうまくいったのか、ついに理解しました。どうもありがとうございました! – Magnus

関連する問題