Xpath查询,检查列表中是否存在2个元素文本值

时间:2018-08-14 15:37:29

标签: xpath

我正在尝试找出一种使用Xpath查询来检查列表中是否存在2个元素文本值的方法。目前,我仅限于Xpath 1.0。

我有一个带有子树的XML正文,其中包含一个列表。看起来像这样:

<tags>
      <tag>A</tag>
      <tag>B</tag>
      <tag>C</tag>
      <tag>E</tag>
</tags>

如果该列表中的标记文本值等于“ A”和“ C”,我想拥有一个返回节点集的查询。 (这会运行一个文件,其中包含我上面已经描述的许多xml标记列表。

这是我目前的最大努力:

descendant-or-self::node()[local-name(.) = 'tag' and text() = 'A' and (preceding-sibling::text() = 'C' or following-sibling::text() = 'C')]

此问题很可能是由于我的嵌套情况以及使用前兄弟和后兄弟的原因。

是否可以以这种方式嵌套条件?

在此先感谢您提供的任何帮助和见解!

2 个答案:

答案 0 :(得分:0)

如果(// tag / text()='A'和// tag / text()='C'),则// tag [text()='A'或text()='C']其他//空

答案 1 :(得分:0)

这是我得出的解决方案:

YRR