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

2022-09-02 04:02:05

我有一个这样的元素:

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

如何分别提取 TextA 和 TextB?


答案 1

有几种方式。这实际上取决于文档本身以及给定的HTML标记是否一致。在这个特定的例子中,你可以通过 Element#childNodes() 获取 的子节点,然后单独测试每个节点是否是 TextNodetd

例如:

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 />


答案 2

推荐