Xpath:如何找到与指定Xpath条件匹配的节点的所有子代的父级?

Xpath:如何找到与指定Xpath条件匹配的节点的所有子代的父级?,xpath,Xpath,以下是HTML: <article> //some levels... <div class="address item"> <a class="address"> Address 1 </a> </div> <div class="address item"> <a class="address"> Address 2 </a>

以下是HTML:

<article>
//some levels...
  <div class="address item">
    <a class="address">
      Address 1
    </a>
  </div>
  <div class="address item">
    <a class="address">
      Address 2
    </a>
  </div>
</article>
<article>
//some levels...
  <div class="address item">
    <a class="address">
      Address 2
    </a>
  </div>
  <div class="address item">
    <a class="address">
      Address 3
    </a>
  </div>
  <div class="address item">
    <a class="address">
      Address 4
    </a>
  </div>
</article>  
<article>
//some levels...
  <div class="address item">
    <a class="address">
      Address 1
    </a>
  </div> 
</atricle>

//某些级别。。。
地址1
地址2
//某些级别。。。
地址2
地址3
地址4
//某些级别。。。
地址1

我需要在所有
a
元素中找到
文章
,其中没有文本
地址1
(本例中只有一篇
文章
)。我使用了
(//div[@class=“address item”]/genderant::a[not(contains(text(),“address 1”)))/祖先::article
,但它仍然可以找到
article
地址1在哪里
试试这个,如果它仍然不满足要求,请告诉我:

//article[not(.//a[normalize-space(text())="Address 1"])]

@安德森,你能告诉我这行不行吗<代码>//文章[not(//a[contains(text(),'Address 1')])]
我对此不确定,因此我向您询问。否。您应该指定上下文-
//a
,而不是
//a
//article[not(//a[contains(text(),'Address 1'))]
表示返回
article
,如果整个文档中没有
a
包含
地址1
,而
//article[not(.//a[contains(text(),'Address 1')])
表示返回
文章
如果此
文章
中没有包含
地址1
的后代
a
,请注意
text()=“Address 1”
将匹配精确的文本内容,而
只包含(text(),'Address 1')
-文本内容的一部分,因此
“Address 1或某物”
“某物和地址1”
也将与Hanks Mate配对,以分享您的知识。:)Andersson我使用
contains()
,因为实际上文本“地址1”是“地址1”。也就是说,文本中有空格。因此,您的表达式通常会找到所有
文章