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

BaseX XQUERY如何按特定属性值筛选节点并返回对应name标签

错误排查

  1. 路径层级错误
    原查询中的//mondial/country/population会匹配country节点下的直接子节点population,但你提供的XML结构里,population是country→city的子节点,路径少了一级city,导致匹配不到任何population节点。
  2. 节点关系错误
    就算路径正确,name标签和population标签是同属city节点的兄弟节点,从population节点向下查找子节点name也不会有结果。

修正后的查询语句

写法1:基于原逻辑调整

for $x in //mondial/country/city/population
where $x/@year=87
return $x/../name

其中../表示定位到当前population节点的父节点(即city节点),再查找city下的name子节点。

写法2:更简洁的筛选逻辑

直接对city节点做条件筛选,可读性更高:

for $city in //city
where $city/population/@year = 87
return $city/name

如果需要直接返回名称的文本内容而非标签节点,可在返回部分追加/text(),即return $city/name/text()。

内容的提问来源于stack exchange,提问作者Oscar Cubz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 07:24:03