我需要从HTMl片段中提取所有文本。
示例:
INPUT :<p><div>how are</div> you doing?</p><p>I'm doing well</p>
输出:how are you doing? I'm doing well
我发现了一些问题,比如这个Text Extraction from HTML Java,它处理类似的问题,但它们都删除了<p>
标记,但是没有删除内部元素。
最初,我尝试通过每个<p>
标签的子项进行列表并连接其内容,并递归检查每个孙子并连接其子项等等,直到只有文本。问题是某些文本没有被标签包围,只是简单。
我也尝试了Jsoup.parse(html).select("p").text()
,但我得到"[]I'm doing well"
作为输出。
这似乎是网络抓取器类型程序的一个非常普遍的需求,但我找不到解决方案。
答案 0 :(得分:2)
试试这个:
Document doc = Jsoup.parse("<p><div>how are</div> you doing?</p><p>I'm doing well</p>");
String body = doc.body().text();