XQuery: 查找最大值和 return 相关信息
XQuery: find max value and return relevant information
我有一个 XML 文件,其中包含具有以下结构的元素:
<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 和 return 的最大值 result.In 我的例子,num_bids 29 是最大值,所以需要 return 项目 A.But 在我下面的代码中,它 return 编辑了所有结果。
let $x := //listing
let $max := max($x/auction_info/num_bids)
return $x[//num_bids = $max]/item_info/result
感谢您的帮助。
你的表达要求是“给我文档中有num_bids、anywhere的所有$x,等于到 $max." 这不同于 " 给我所有的 $x,其中 它自己的 num_bids 等于 $max。 " 应执行以下操作(未测试):
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]
(看到额外的点?)第一个说“for each $x , 来自它的根 的任何 xxx 后代,”第二个说“ 对于每个 $x,任何来自其自身 的 xxx 后代。”但是从您的示例输入来看,上面的查询很可能是您想要的。
我有一个 XML 文件,其中包含具有以下结构的元素:
<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 和 return 的最大值 result.In 我的例子,num_bids 29 是最大值,所以需要 return 项目 A.But 在我下面的代码中,它 return 编辑了所有结果。
let $x := //listing
let $max := max($x/auction_info/num_bids)
return $x[//num_bids = $max]/item_info/result
感谢您的帮助。
你的表达要求是“给我文档中有num_bids、anywhere的所有$x,等于到 $max." 这不同于 " 给我所有的 $x,其中 它自己的 num_bids 等于 $max。 " 应执行以下操作(未测试):
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]
(看到额外的点?)第一个说“for each $x , 来自它的根 的任何 xxx 后代,”第二个说“ 对于每个 $x,任何来自其自身 的 xxx 后代。”但是从您的示例输入来看,上面的查询很可能是您想要的。