我有一个像这样的元素:
<td> TextA <br/> TextB </td>
如何将TextA和TextB分别提取出来?
我有一个像这样的元素:
<td> TextA <br/> TextB </td>
如何将TextA和TextB分别提取出来?
有几种方法。这主要取决于文档本身以及给定的HTML标记是否一致。在这个特定的例子中,您可以通过Element#childNodes()
来获取td
的子节点,然后逐个测试每个节点是否为TextNode
。
例如:
Element td = getItSomehow();
for (Node child : td.childNodes()) {
if (child instanceof TextNode) {
System.out.println(((TextNode) child).text());
}
}
我认为如果Jsoup提供一个类似于Element#children()
的Element#textNodes()
或类似的方法来获取子文本节点将会很不错(在您的示例中,它将返回<br />
元素)。这会产生以下结果:
TextA TextB