在Java中轻松将HTML格式文本转换为纯文本(保留换行)

第一步:引入Jsoup和lang和lang3的依赖:

Jsoup是HTML解析器
lang和lang3这两个包里有转换所需的工具类

<dependency>
	<groupId>org.jsoupgroupId>
	<artifactId>jsoupartifactId>
	<version>1.11.3version>
dependency>
<dependency>
	<groupId>commons-langgroupId>
	<artifactId>commons-langartifactId>
	<version>2.6version>
dependency>
<dependency>
	<groupId>org.apache.commonsgroupId>
	<artifactId>commons-lang3artifactId>
	<version>3.4version>
dependency>

第二步:直接使用即可:

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Whitelist;

/**
 * @author Piconjo
 */
public class Html2PlainText {
    public static String convert(String html)
    {
        if (StringUtils.isEmpty(html))
        {
            return "";
        }

        Document document = Jsoup.parse(html);
        Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false);
        document.outputSettings(outputSettings);
        document.select("br").append("\\n");
        document.select("p").prepend("\\n");
        document.select("p").append("\\n");
        String newHtml = document.html().replaceAll("\\\\n", "\n");
        String plainText = Jsoup.clean(newHtml, "", Whitelist.none(), outputSettings);
        String result = StringEscapeUtils.unescapeHtml(plainText.trim());
        return result;
    }
}

使用测试:

在Java中轻松将HTML格式文本转换为纯文本(保留换行)_第1张图片
在Java中轻松将HTML格式文本转换为纯文本(保留换行)_第2张图片


你可能感兴趣的:(其它)