XPath如何选择具有相同值的子节点

Posted

技术标签:

【中文标题】XPath如何选择具有相同值的子节点【英文标题】:XPath how to select nodes which have children with same value 【发布时间】:2021-11-03 17:17:42 【问题描述】:

我正在使用 XPath 开发 XML 验证器,我需要找到每个节点(产品),其子节点 Cat1 等于 Cat2。像这样:

<Catalog>
    <Product>
        <Cat1>ABC</Cat1>
        <Cat2>ABC</Cat2>
    </Product>
    <Product>
        <Cat1>123</Cat1>
        <Cat2>456</Cat2>
    </Product>
</Catalog>

如何仅选择 Cat1 和 Cat2 中具有相同值的节点 Product?

谢谢

【问题讨论】:

【参考方案1】:

在xsh 中测试(我碰巧维护了一个基于 libxml2 的 XML shell)。

/Catalog/Product[Cat1 = Cat2]

【讨论】:

Stack Overflow 上的“谢谢”=upvote/accept.

以上是关于XPath如何选择具有相同值的子节点的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XPath 忽略命名空间

使用 xpath 访问具有命名空间的子节点

如何使用 XPath 选择任意深度的子元素?

xpath选择父节点类型不同的子节点

Django:如何选择具有相同字段值的对象?

如何从两个表中选择同一字段中具有相同值的行?