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

如何调整XPath以在父节点Form_1范围内查找重复Country值?

问题:在单个Form_1节点范围内查找重复的Country值

给定XML结构:

<Forms>
    <Form_1>
        <Country>AFG</Country>
        <Country>AFG</Country>
        <Country>IND</Country>
    </Form_1>
    <Form_1>
        <Country>IND</Country>
        <Country>USA</Country>
    </Form_1>
</Forms>

当前使用XPath表达式 Forms//Form_1/Country[.=./following::Country] 会返回整个文档中重复的Country值(AFG和IND),但需求是仅在单个Form_1父节点范围内查找重复值,期望结果仅为AFG。

解决方案

调整后的XPath表达式:

Forms//Form_1/Country[exists(following-sibling::Country[. = current()])]

说明

  • 原表达式里的following::Country会匹配整个文档中当前节点之后的所有Country节点,所以会跨Form_1节点把第二个Form_1里的IND也判定为重复。
  • 改用following-sibling::Country后,只会匹配同一个Form_1父节点下、当前Country节点之后的兄弟节点,严格限制在了单个Form_1的范围内。
  • exists()用来判断当前节点之后是否有相同值的兄弟Country节点,精准筛选出单个Form_1内重复的Country值(此处仅返回AFG)。

另一种等价的简洁写法:

Forms//Form_1/Country[.=following-sibling::Country]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:50:57