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

XPath需求咨询:筛选含match模式的去重Condition节点

解决XPath筛选带mode="match"的entry下Condition并去重的问题

直接给你能满足需求的XPath表达式:

//Bundle/entry[mode/@value='match']/resource/Condition[not(id/@value=following::entry[mode/@value='match']/resource/Condition/id/@value)]

你之前写法的问题分析

  • 第一种写法//Bundle/entry[<<expression>>]/resource/Condition[not(id/@value=following::Condition/id/@value)]:这里的following::Condition会匹配整个文档里所有后续的Condition节点,包括那些不在mode="match"的entry下的节点。如果某个不符合条件的entry里存在相同id的Condition,会错误过滤掉你需要保留的目标节点。
  • 第二种写法//Bundle/entry/resource/Condition[not(id/@value=following::Condition/id/@value) and ../../<<expression>>]:逻辑顺序错误——先做了全局范围内的Condition去重,再筛选所在entry符合条件的节点。这会导致符合条件的entry里的重复Condition可能已经被全局去重剔除,最终结果无法精准匹配你的需求。

正确表达式的逻辑

  1. 先锁定所有包含<mode value="match"/>的entry节点://Bundle/entry[mode/@value='match']
  2. 在这些entry下的Condition中,只保留后续符合条件的entry里没有相同id的节点:not(id/@value=following::entry[mode/@value='match']/resource/Condition/id/@value)
    这样就能精准筛选出目标entry下的Condition,同时完成去重,最终只保留每个唯一id的第一个出现实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:32:11