我有这样一个元素:
<td> TextA <br/> TextB </td>
如何分别提取Text和Text?
最佳答案
几种方式。这实际上取决于文档本身以及给定的 HTML 标记是否一致。在此特定示例中,您可以获得 td
的子节点 Element#childNodes()
然后单独测试每个节点是否为 TextNode
还是不是。
例如
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 />
元素)。
关于java - 如何使用 Jsoup 提取单独的文本节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7164376/