无法在 XQUERY 中返回 functionValue

发布于 2024-12-12 07:57:34 字数 385 浏览 0 评论 0原文

如果我发出以下查询,则它不会返回任何内容:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟酉 2024-12-19 07:57:34

您可以不使用 let 来完成此操作:avg(doc("books.xml")//book/price)。对于 books.xml 返回 17.86666666666667 您可能引用的示例文件。

您也可以使用 let 结构来完成此操作,但您要使用的函数称为 avg,而不是 average

let $b := doc("books.xml")//book
let $avg := avg( $b//price )
return $avg

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 called avg, not average:

let $b := doc("books.xml")//book
let $avg := avg( $b//price )
return $avg
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文