如何使用xpath仅选择文本字符串的直接父节点

时间:2016-08-19 10:36:00

标签: xpath

给出以下html:

<html>
 <body>
  <div>
   <p>During the interim there shall be nourishment supplied</p>
  </div>
  <div>
   <a href="/interim">In the interim</a>
  </div>
 </body>
</html>

以及以下xpath:

//*[contains(.,'interim')]

由此返回的元素包括HTML标记,BODY标记等。因此返回每个祖先父级。

我只想要直接的容器节点,即P和A。

1 个答案:

答案 0 :(得分:1)

您可以使用

//*[contains(text(),'interim')]

即。将.替换为text()

这将检查具有包含文本interim的文本节点子项的所有元素。

不同之处在于.与字符串相关的函数一起使用时,会返回元素的整个文本内容,这就是它返回每个祖先的原因。