2015-05-13 36 views
0

我有一個包含具有以下結構元素的XML文件:的XQuery:找到最大值,並返回相關信息

<listing> 
    <auction_info> 
     <num_bids>29</num_bids> 
    </auction_info> 
    <item_info> 
     <result>item A</result> 
    </item_info> 
</listing> 
<listing> 
    <auction_info> 
     <num_bids>12</num_bids> 
    </auction_info> 
    <item_info> 
     <result>item B</result> 
    </item_info> 
</listing> 

我需要一個查詢來計算num_bids的最大值,並返回result.In我的例子, num_bids 29是最大數字,所以需要返回項A.但在我的代碼下面,它返回了所有結果。

let $x := //listing 
let $max := max($x/auction_info/num_bids) 
return $x[//num_bids = $max]/item_info/result 

謝謝你的幫忙。

回答

2

你的表情詢問什麼是「給我所有$ x,其中有一個num_bids,的文件,這是等於$最大在任何地方」這是不同於「給我所有$ X爲此自己的 num_bids等於$最大「下面應該做什麼?(未測試):

let $in := //listing 
let $max := max($in/auction_info/num_bids) 
return 
    $in[auction_info/num_bids eq $max]/item_info/result 

如果你真的想使用後代軸,您可以更改$x[//xxx]$x[.//xxx](見額外的點?)第一個說「爲每個$ x,任何xxx從其根,「第二個說」爲每個$ x,任何xxx從其本身後裔。但從您的示例輸入中,上面的查詢很可能是您想要的。

+0

謝謝!它的工作。 – Roaid

相關問題