当前位置: 首页 > 知识库问答 >
问题:

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

海鸣
2023-03-14

我对Xpath有问题。我试图查找div第一次迭代的所有文本节点,但排除其中包含关键字的节点。

一个简单的例子:

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

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

我想从第一个div“blabla”中获取所有文本,但排除所有包含“bananas”一词的段落。在这种情况下,我只想要“我也喜欢苹果”。段落数和单词“bananas”的位置是随机的。

以下是我尝试过的:

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

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

共有1个答案

曹恩
2023-03-14

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

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

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

 类似资料:
  • 我试图找到DOM中紧跟在前一个文本节点之后的文本节点的xpath--但它们不是兄弟,它们的xpath关系可能会改变。 我使用祖先和后代是因为uniqueID和text以及uniqueID和$amount之间的元素数量发生了变化。 我的最佳猜测(这不起作用)://text()[contains(.,“$”)][祖先::div[1]//*[text()[contains(.,“uniqueText”)

  • 我看到现有的问题标题相同,但那是一个不同的问题。 假设我想在

  • 我正在使用selenium在html页面上执行测试。我只能使用xpath来定位元素。我试图创建一个xpath,它允许我定位所有包含文本的div,这样我就可以用findElements保留这些WebElement的引用,不管它是什么,只要它不是空的。所以我有了这个xpath: //div[5]/div/div[2]

  • 我正在学习MapReduce,我想读取一个输入文件(逐句)并将每个句子写入一个输出文件,前提是它不包含单词“snake”。 例如。输入文件: 则输出文件应为: 为此,我在< code>map方法中检查句子(< code>value)是否包含单词snake。如果句子中不包含snake单词,那么我将在< code>context中书写该句子。 此外,我将化简器任务的数量设置为0,否则在输出文件中,我以

  • 无法完成这项理论上相对简单的任务: 查找节点文档,其中Field具有包含特定文本的属性Name,并且子节点Option具有值。 XML: 所以我希望能够将模板应用到文档中,比如 但那是行不通的。 只需指定:文档必须在选项中包含文本,该选项是包含特定文本的字段的子节点。 在xml中,使用输入值: 1:Børn Fridslip= 2: Børn-Fritidsklub= 3:Børn Fritid=

  • 我试图找到正确的xpath表达式来选择包含特定文本的元素的父元素。 在下面的示例中,我希望选择文本匹配为“4”或任何其他数字的“span”元素,并且父元素与文本“Rooms”匹配: 我的XPath示例-匹配“div”元素中的每个“span” 源代码 我想要的是选择包含数字4的“span”元素作为文本,但html可能会更改,可能只有两个或一个“span”元素,如下例所示: 或