Tidy 可将不规范 HTML 转为 XML 兼容 XHTML,需启用 --output-xhtml yes 或 --xml-output yes;前者更常用,自动修复标签闭合、引号、大小写等,并支持 -asxhtml、--indent、--wrap 0 等参数优化输出。

可以使用 HTML Tidy(常简称为 Tidy)将不规范的 HTML 转换为格式良好、符合 XML 语法的 XHTML 或纯 XML 兼容结构。
确认 Tidy 支持 XML 输出模式
Tidy 默认输出是 HTML,要生成 XML 格式,必须启用 xml-output 或 xhtml 选项。两者略有区别:
-
--xml-output yes:强制以 XML 模式解析并输出,要求标签闭合、属性加引号、区分大小写等;对非 XHTML 的 HTML 可能报错或失败 -
--output-xhtml yes:更常用,将输入转换为严格 XHTML 1.0/1.1 兼容格式,自动修复缺失闭合标签、转义特殊字符、标准化属性名(如checked="checked"),输出内容可被标准 XML 解析器读取
命令行中启用 XHTML/XML 模式
在终端运行 Tidy 时添加关键参数:
tidy -asxhtml --output-xhtml yes --indent auto --wrap 0 input.html > output.xhtml
常用参数说明:
立即学习“前端免费学习笔记(深入)”;
-
-asxhtml:强制作为 XHTML 解析输入(即使文件扩展名是 .html) -
--output-xhtml yes:确保输出是合法 XHTML(XML 兼容) -
--indent auto:自动缩进,提升可读性 -
--wrap 0:禁用行宽截断,避免文本被意外换行 -
--clean yes(可选):移除 Microsoft Word 等生成的冗余样式和注释
处理常见不规范问题
Tidy 在 XML/XHTML 模式下会主动修正以下典型问题:
- 自闭合标签补全:将
→,→

- 属性值强制加双引号:
→ - 大小写统一:将大写标签名转为小写(→),符合 XML 规范
- 嵌套错误修复:对
这类非法嵌套尝试重排结构...验证输出是否真正 XML 兼容
生成文件后,可用简单方式验证是否满足基本 XML 要求:
- 用 Python 快速测试:
import xml.etree.ElementTree as ET; ET.parse("output.xhtml")—— 若无异常,则可被标准 XML 解析器加载 - 检查首行是否有 XML 声明:
(Tidy 默认不加,需手动添加或用--add-xml-decl yes) - 确保所有标签正确嵌套、闭合,无孤立
或未转义的字符
- 嵌套错误修复:对











