XPath用于选择所有没有特定父元素的元素

3

假设我有以下XML:

<div>
   <a>
      <label>a</label>
   </a>
   <b>
      <label>b</label>
   </b>
   <c>
      <d>
         <label>c-d</label>
      </d>
   </c>
   <b>
      <d>
         <label>b-d</label>
      </d>
   </b>
</div>

我正在尝试使用Xpath查找所有“label”元素,但不包括在<b>标签内。 在这个例子中,我想要获取:

<label>a</label>
<label>c-d</label>
2个回答

2
这是XPath,
//label[not(parent::b)]

根据您的标题,选择所有没有 b 父元素label 元素。

这个 XPath 表达式:

//label[not(ancestor::b)]

选择所有没有 b 祖先元素label 元素,根据您提供的示例。

1
如果我理解你的问题正确,你正在尝试获取所有不在b标签内的标签。请尝试使用以下xpath。
//div//label[not(ancestor::b)]

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接