如何使用 Jsoup 提取单独的文本节点?
Posted
技术标签:
【中文标题】如何使用 Jsoup 提取单独的文本节点?【英文标题】:How to extract separate text nodes with Jsoup? 【发布时间】:2011-11-02 02:58:45 【问题描述】:我有一个这样的元素:
<td> TextA <br/> TextB </td>
如何分别提取 TextA 和 TextB?
【问题讨论】:
【参考方案1】:几种方法。这实际上取决于文档本身以及给定的 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 />
元素),那就太好了。
【讨论】:
我已经为 1.6.2 实现了 Element#textNodes(),感谢您的建议。 github.com/jhy/jsoup/commit/… @JonathanHedley 你是救生员!我对你的辛勤工作表示感谢。您的代码和 cmets 非常完美,为我节省了数小时的 Google 和 ***。以上是关于如何使用 Jsoup 提取单独的文本节点?的主要内容,如果未能解决你的问题,请参考以下文章