You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XQuery代码运行报XPST0003语法错误,无法定位具体出错位置

错误原因
  • 语法层面:XQuery不支持:=变量重赋值语法,你用的是命令式编程语言的变量更新写法,不符合XQuery语法规范,所以直接触发XPST0003语法错误。
  • 逻辑层面:XQuery是函数式语言,所有变量声明后不可变,你设计的循环累加计数的思路本身不符合XQuery的设计范式。
修复代码

你要实现的「统计机场数量超过25的国家并输出国家名、对应机场数」的需求,可以直接用XQuery内置的count()函数实现,不需要手写循环计数,修正后代码如下:

let $d := doc('mondial.xml')
let $airports := $d/mondial/airport
let $countries := $d/mondial/country

for $country in $countries
    let $car_code := $country/@car_code
    let $airport_count := count($airports[@country = $car_code])
    where $airport_count > 25
    return
        <country>
            <name>{data($country/name)}</name>
            <count>{$airport_count}</count>
        </country>
优化说明
  • 直接通过count($airports[@country = $car_code])一步统计出当前国家对应的机场总数,省略了冗余的嵌套循环和计数变量声明
  • 去掉了不必要的类型转换,count()函数返回值本身就是整数,不需要额外做xs:integer转换

内容的提问来源于stack exchange,提问作者ali sood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:18:04