XPath:排除包含特定单词的文本节点

时间:2018-01-23 14:24:20

标签: xpath

我遇到Xpath问题。我试图找到div的第一次迭代的所有文本节点,但排除那些在其中有关键字的节点。

一个简单的例子:

<div class="blabla">
  <p>I like bananas</p>
  <p>I also like apples</p>

<div class="blabla">
  <p>some text</p>

我想从第一个div中获取所有文字&#34; blabla&#34;但排除所有包含单词&#34; bananas&#34;的段落。在这种情况下,我只想&#34;我也喜欢苹果&#34;。段落的数量和单词&#34;香蕉&#34;的位置。是随机的。

以下是我尝试的内容:

(//div[@class='blabla'])[1][not(contains(text(), 'bananas'))]

我不知道为什么这不起作用。如果有人有想法,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

您在第三个谓词之前缺少对p子元素的引用:

//div[@class='blabla'][1]/p[not(contains(text(), 'bananas'))]

只是两个字母/p才有所不同。