需求
有时候,我们需要将普通的html(xml格式并不是很严格,例如标签不闭合)转成格式标准的XHTML,例如,在之前的文章中,利用iTextPDF将html转成PDF中(详见:https://blog.terrynow.com/2021/08/10/itextpdf-5-x-convert-html-to-pdf-support-css-and-chinese/),就需要提供标准的XHTML
实现
可以利用jsoup来实现(Jsoup是一个非常强大的Html解析工具,可以整理Html,类似Jquery的查找元素的方式提取需要的内容等),我们这里只是用到Jsoup的一个小功能
- 引入pom.xml
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.2</version>
</dependency>
- 转换方法
/**
* 将普通html转换成标准XHTML
*/
private static String convertHtmlToXhtml(String html) {
org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(html);
// jsoup生成闭合标签
doc.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml);
doc.outputSettings().escapeMode(org.jsoup.nodes.Entities.EscapeMode.xhtml);
return doc.html();
}
文章评论