XPath表达式不应该返回节点

时间:2019-01-23 15:45:16

标签: c# xpath .net-core

假设我具有以下结构:

<parent>
  <child></child>
</parent>

如果我在<child>节点上,那么我期望以下XPath返回空值:

./parent::*[not(parent)]

但是,我得到的结果集列出了孩子的父母。为什么?

1 个答案:

答案 0 :(得分:1)

表达式not(parent)检查parent节点是否为空元素。
对于您而言,它不是,因为它包含一个child节点。

您要查找的表达式可能是not(self::parent),它检查节点本身是否不是parent节点。因此整个表达式可能应该是

parent::*[not(self::parent)]

我删除了./轴,因为在这种情况下没有必要。