java - 如何使用 Jsoup 提取单独的文本节点?

标签 java html-parsing jsoup

我有这样一个元素:

<td> TextA <br/> TextB </td>

如何分别提取Text和Text?

最佳答案

几种方式。这实际上取决于文档本身以及给定的 HTML 标记是否一致。在此特定示例中,您可以获得 td的子节点 Element#childNodes() 然后单独测试每个节点是否为 TextNode 还是不是。

例如

Element td = getItSomehow();

for (Node child : td.childNodes()) {
    if (child instanceof TextNode) {
        System.out.println(((TextNode) child).text());
    }
}

结果是

 TextA 
 TextB 

我想如果 Jsoup 提供一个 Element#textNodes() 就好了或获取子文本节点的东西,如 Element#children()获取子元素(在您的示例中会返回 <br /> 元素)。

关于java - 如何使用 Jsoup 提取单独的文本节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7164376/

相关文章:

java - 重写 Application 类并通过静态变量访问它是否安全?

ruby - 使用 nokogiri 或 mechanize 解析使用 JavaScript 呈现的电子邮件

java - Jsoup找到最近的href

python - beautifulsoup 以 None 形式返回包含 <br> 标签的数据

java/android 如何在 url 字符串上使用 contains()

java - 需要使用 Jsoup 在网页上自动登录的帮助

java - 发生异常后如何关闭 BufferedReader?

java - Java中使用GSON反序列化复杂的Json对象

java - 什么时候 ArrayList 比 Java 中的数组更可取?

php - 解析这个 HTML