MarkLogic控制台执行XQuery if-then语句遇语法错误求助
解决MarkLogic XQuery的Unexpected token语法错误
这个错误是因为你的XQuery代码违反了FLWOR表达式的语法规则,同时if-then-else的用法也有问题,我来帮你拆解修正:
错误原因
- 在XQuery的FLWOR语句中,
let子句之后必须紧跟return来指定要输出的表达式,你直接在let后面接if,解析器无法识别这个结构,所以抛出了Unexpected token syntax error, unexpected If_。 - 另外,XQuery的
if-then-else本身就是一个返回值的表达式,不需要在then和else后面单独加return关键字。
修正后的代码
let $name1 := "Bob" let $name2 := "John" return if(fn:contains($name1, "Bo")) then "Bob is good" else "John is good"
代码说明
- 用
return把整个if表达式包裹起来,符合FLWOR语句let ... return ...的结构要求。 - 移除了
then和else后的return,让if表达式直接返回对应的字符串结果。
这样修改后,代码就能正常执行,当$name1包含"Bo"时返回"Bob is good",否则返回"John is good"。
内容的提问来源于stack exchange,提问作者subsoft
相关产品推荐
相关产品推荐

