首页 > 解决方案 > xpath 请求选择恰好出现两次的元素

问题描述

我面临一个我无法解决的困难请求。

例如,这是我们的 xml 数据库:

<A>
   <B>
   ...
   </B>

   <C>
   ...
   </C>

   <B>
   ...
   </B>

</A>

问题是:元素 A 的 B 子元素是什么,恰好出现了两次。在我们的示例中,元素 B 应该是答案。

有一个限制:我们不能使用 count() 或像 min , max ... 之类的聚合函数。

预先感谢您的帮助。

标签: xmldatabasexpath

解决方案


经过一些研究,我在不使用 agregate 函数的情况下解决了我的问题。

所以 XPath 请求是:

//A[B[1] and B[2] and not (B[3])]

因此,我们要求元素 A 在位置 1 有孩子 B,在位置 2 有孩子 B,但在位置 3 没有孩子。


推荐阅读