You need to enable JavaScript to run this app. 为何第一条XQuery语句可正常运行而第二条无法执行
优惠活动
大模型
产品
解决方案
定价
更多

为何第一条XQuery语句可正常运行而第二条无法执行

错误原因

  • XQuery的if...then...else语法要求then和else分支各自只能返回单个表达式的结果
  • 第一条可运行的语句中,then分支仅返回单个<prop>节点,属于合法的单个表达式,因此可以正常执行
  • 第二条报错的语句中,then分支直接并列了<key>、<value>两个独立节点,没有包裹为统一的序列,不符合语法规则,因此执行失败

修复方法

将then分支需要返回的多个节点用括号包裹,用逗号分隔为序列即可,修改后的代码如下:

let $payload := <root><foo>bar</foo></root>

return
<root>
{
    if (exists($payload/foo)) then
        (<key>mykey</key>, <value>bar</value>)
    else
        ""
}
</root>

内容的提问来源于stack exchange,提问作者Will Black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 16:06:03