BaseX 中的 XQuery - file:write() 之外的 let 语句

2024-01-09

我有以下代码:

let $fName := "C:\Users\user\Documents\Sitemaps\Updated Pages\Books.xml"

file:write($fName,
  element titles{
    for $x in doc("http://www.w3schools.com/xsl/books.xml")/bookstore/book
    where $x/price>0
    order by $x/title
    return $x/title
})

BaseX 给我一个错误 - “不完整的 FLWOR 表达式:期待‘返回’。” 其特别强调的是file:write线、下划线file in red.

我不知道为什么会发生这种情况。我如何构造它以避免语法错误?


你不能有一个let没有return。在你的情况下,你只需添加return before file:write:

let $fName := "C:\Users\user\Documents\Sitemaps\Updated Pages\Books.xml"
return file:write($fName,
...

如果您认为一切都是表达式,那么就更容易推理 XQuery。您通常能够在 XQuery 中作为过程语言中的语句执行的内容(可能不依赖于其他语句)必须是有效表达式的一部分 - 通常是 FLWOR 或 XPath。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BaseX 中的 XQuery - file:write() 之外的 let 语句 的相关文章

随机推荐