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

XQuery创建含列表条件变量的技术问题咨询

XQuery筛选满足多条件的answer节点解决方案

不需要遍历$numbers来创建$answers变量,用XQuery的量化表达式就能直接实现你的需求。

需求拆解

你需要筛选$document中的answer节点,同时满足两个条件:

  1. 节点下存在number子节点,其@number属性值为'ABC'
  2. 该answer节点下的number子节点,必须包含$numbers中的每一个数值(即同时存在@number为'1'、'2'、'3'、'6'的number节点)

实现代码

let $numbers := ('1', '2', '3', '6')
let $answers := $document//answer[
  # 条件1:存在@number为'ABC'的number子节点
  number/@number = 'ABC'
  # 条件2:验证$numbers中的每个值都能在当前answer的number节点中找到匹配
  and every $num in $numbers satisfies exists(number/@number = $num)
]
return $answers

代码说明

  • number/@number = 'ABC':检查当前answer下是否有符合条件的number节点
  • every $num in $numbers satisfies exists(...):这是XQuery的全称量化表达式,确保$numbers中的每一个值,都能在当前answer的number节点的@number属性中找到对应匹配,替代了手动遍历$numbers的操作

后续遍历处理

如果需要遍历筛选出的$answers节点,直接循环即可:

for $ans in $answers
return $ans

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:01:14