jsoup 解析html保留换行

December 28, 2016

问题:

Jsoup解析html,即从html代码中抽取文本,通常的方法是:

Document doc = Jsoup.parse(html);
String text = doc.text();

或者

String text = Jsoup.clean(html,Whitelist.none());

但是这两种方法得到的文本,换行信息全部被去掉了,text为一行文本,没有换行。如何保留换行信息呢?

解决办法:

Jsoup.clean方法还有另外一个重载

public static String clean(String bodyHtml, String baseUri, Whitelist whitelist, Document.OutputSettings outputSettings)

最后一个参数即为解析设置参数,api文档注释说明如下:

@param outputSettings document output settings; use to control pretty-printing and entity escape modes

所以方法如下:

String text =Jsoup.clean(html, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));