如何在Java中实现XHTML到HTML的格式转换?
XHTML转HTML Java实现方案
你已经在使用jsoup做HTML到XHTML的转换,反向转换直接使用jsoup内置的输出配置即可完成,不需要引入额外依赖。
核心原理
jsoup本身兼容XHTML/XML格式的输入,只需将输出语法规则切换为HTML模式,即可自动完成标签语法、转义规则的适配,核心改动仅一行输出配置。
实现步骤与代码示例
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.parser.Parser; public class XhtmlToHtmlConverter { public static String convert(String xhtmlContent) { // 解析XHTML内容,含自定义命名空间时必须使用xmlParser Document document = Jsoup.parse(xhtmlContent, "", Parser.xmlParser()); // 核心配置:设置输出语法为HTML模式 document.outputSettings() .syntax(Document.OutputSettings.Syntax.html) .prettyPrint(true); // 按需开启格式化缩进,不需要可设为false // 输出转换后的HTML字符串 return document.html(); } public static void main(String[] args) { // 测试示例 String testXhtml = """ <html xmlns="http://www.w3.org/1999/xhtml"> <body> <p>测试<br />换行<br /> <img src="demo.png" alt="测试图" /> </p> </body> </html> """; String htmlResult = convert(testXhtml); System.out.println(htmlResult); } }
转换效果说明
- 自动将XHTML的自闭合标签语法(如
<br />、<img />)转换为HTML标准格式<br>、<img> - 自动去除XHTML强制要求的XML命名空间属性
- 按HTML规则处理特殊字符转义,避免XHTML的严格转义导致的HTML兼容问题
- 若需要对输出内容做标签、属性过滤,可搭配jsoup的
clean方法配合Safelist规则使用。
内容的提问来源于stack exchange,提问作者Louabk
相关产品推荐
相关产品推荐

