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

Xpath 1中是否存在更简洁高效的列表项筛选语法?

XPath 1多值排除筛选的优化写法

更简洁且执行更快的实现代码

直接替换原有逻辑即可:
[not(contains('|10281147|3157344949|6099815862|6100309416|6104595405|6691194319|', concat('|', @id, '|')))]

逻辑说明

  • 核心是用字符串包含匹配替代多条件OR判断:把所有需要排除的ID用不会出现在ID值中的分隔符(这里选|,适配纯数字ID场景)拼接为一个完整字符串,再给当前节点的@id前后也拼接相同分隔符,单次contains判断即可完成多值匹配。
  • 执行速度优于原有写法:绝大多数XPath 1解析引擎的原生字符串匹配优化程度远高于多个OR条件的逐一判断,需要排除的ID数量越多,性能优势越明显。
  • 维护成本更低:后续新增需要排除的ID时,只需要在拼接字符串中追加|新ID即可,不需要反复新增or @id='xxx'的判断条件。

注意事项

  • 分隔符必须选择所有待排除ID中都不存在的字符,避免出现误匹配。如果你的ID可能包含|,可以替换为~、^等其他不会出现的特殊字符。
  • 该写法完全兼容标准XPath 1规范,不需要依赖任何扩展函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:21:01