无法在 XQUERY 中返回 functionValue
如果我发出以下查询,则它不会返回任何内容:
let $b := doc("books.xml")//book
let $avg := avg( $b//price )
return $avg
但是以下查询返回满足条件的图书节点,
let $b := doc("books.xml")//book
let $avg := avg( $b//price )
return $b[price > $avg]
怎么回事?在前一种情况下如何返回函数值。
我还尝试了 return $avg/text()
,希望能够使其工作,但没有用。 我正在使用撒克逊语。
提前致谢!
If I issue below query, then it returns nothing:
let $b := doc("books.xml")//book
let $avg := avg( $b//price )
return $avg
But following query returns book node satisfying the condition,
let $b := doc("books.xml")//book
let $avg := avg( $b//price )
return $b[price > $avg]
How so? And how can I return the function value as intended in the former case.
I also tried return $avg/text()
, hoping to make it work, but no use.
I am using Saxon.
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以不使用 let 来完成此操作:
avg(doc("books.xml")//book/price)
。对于 books.xml 返回 17.86666666666667 您可能引用的示例文件。您也可以使用
let
结构来完成此操作,但您要使用的函数称为avg
,而不是average
:You can do it without let:
avg(doc("books.xml")//book/price)
. Returns 17.86666666666667 for the books.xml sample file you're probably referring to.You can do it with your
let
-constructions, too, but the function you want to use is calledavg
, notaverage
: