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

如何在XPath中实现属性值的多选项IN检查?

XPath实现属性值的IN集合匹配

如果你的环境支持XPath 2.0及以上版本,直接用in运算符就能实现,注意语法上要把目标值放在括号里(你之前的写法少了括号,是错误的):

.//Time[@TOD='Day']//Task[@Status in ('COMPLETED', 'BLOCKED')]

或者也可以用等值匹配结合集合的写法,效果完全一样:

.//Time[@TOD='Day']//Task[@Status = ('COMPLETED', 'BLOCKED')]

如果你的环境只能用XPath 1.0(很多旧系统或工具默认用1.0),因为1.0没有in运算符,有两种替代方案:

  • 用or连接多个等值判断,适合值不多的场景:
.//Time[@TOD='Day']//Task[@Status='COMPLETED' or @Status='BLOCKED']
  • 用contains结合分隔符技巧,适合值较多的场景,避免写一堆or:
.//Time[@TOD='Day']//Task[contains('|COMPLETED|BLOCKED|', concat('|', @Status, '|'))]

这里用|作为分隔符是为了避免部分匹配的问题(比如防止把COMPLETED误匹配成COMPLETED_X这类相似值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:13:07