HTML 提取 Body 中 H2 元素之后的纯文本节点

HTML extract bare text node following H2 element in Body

正在尝试提取 html 正文元素中文本节点的值。它紧跟着一个已知的 h2 标签,我可以使用 h2[text() = 'A Heading'] 找到它。但我无法弄清楚如何获取以下文本节点,即文本“我想知道如何为该文本指定一个 XPath 表达式。”在下面的例子中。

我正在使用 Java 和 JSoup,但是任何工具,最好是基于 Java

感谢任何帮助。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Finding Text following H2 tag</title>
  </head>
  <body>
    Some text.
    <h2>A Heading</h2>
    I would like to know how to specify an 
    XPath expression for this text.
    <h2>Another Heading</h2>
    Some more text.
  </body>
</html>

你可以试试这个。

//h2/following-sibling::text()

输出:

节点:

一些文字。

A 标题

我想知道如何为该文本指定 XPath 表达式。

另一个标题

一些更多的文字。 一些文字。

A 标题

我想知道如何为该文本指定 XPath 表达式。

另一个标题

一些

文本值:

I would like to know how to specify an XPath expression for this text.
Some more text.

如果我对问题的理解正确,您只想select“A 标题”下的内容,而不是两个标题。

要实现该目标,应该这样做:

//h2[text()='A Heading']/following-sibling::text()[1]