【发布时间】:2011-11-02 02:58:45
【问题描述】:
我有一个这样的元素:
<td> TextA <br/> TextB </td>
如何分别提取 TextA 和 TextB?
【问题讨论】:
标签: java html-parsing jsoup
我有一个这样的元素:
<td> TextA <br/> TextB </td>
如何分别提取 TextA 和 TextB?
【问题讨论】:
标签: java html-parsing jsoup
几种方法。这实际上取决于文档本身以及给定的 HTML 标记是否一致。在这个特定示例中,您可以通过Element#childNodes() 获取td 的子节点,然后单独测试每个节点是否为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 /> 元素),那就太好了。
【讨论】: