不具有特定父元素的所有元素的 XPath

XPath for all elements not with certain parent

假设我有以下 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>

如果我对你的问题的理解正确,那么你正在尝试获取不在 b 标签内的所有标签。

尝试使用以下 xpath。

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

这个 XPath,

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

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

这个 XPath,

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

根据您的示例选择没有 b ancestor 的所有 label 元素。