需求
有时候,我们需要将普通的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(); }
文章评论