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

时间:2011-08-23 16:31:27

标签: java html-parsing jsoup

我有一个像这样的元素:

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

如何单独提取文字和文字?

1 个答案:

答案 0 :(得分:24)

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

E.g。

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 />}会很好你的例子中的元素。)