利用Jsoup将html转换成严谨格式的xhtml

2021-08-29 1960点热度 0人点赞 0条评论

需求

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

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论