如何使用Jsoup提取单独的文本节点?
问题内容:
我有一个像这样的元素:
<td> TextA <br/> TextB </td>
如何分别提取TextA和TextB?
问题答案:
几种方法。这实际上取决于文档本身以及给定的HTML标记是否一致。在此特定示例中,您可以获取td
的子节点Element#childNodes()
,然后分别测试每个节点是否为TextNode
。
例如
Element td = getItSomehow();
for (Node child : td.childNodes()) {
if (child instanceof TextNode) {
System.out.println(((TextNode) child).text());
}
}
导致
文字A
文字B
我认为,如果Jsoup提供了Element#textNodes()
或东西来获取子文本节点,就像Element#children()
获取子元素一样(<br />
在您的示例中将返回该元素),那会很好。