如何将不规范的HTML转换为格式良好的XML Tidy工具

15次阅读

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

如何将不规范的HTML转换为格式良好的XML Tidy工具

可以使用 HTML Tidy(常简称为 Tidy)将不规范的 HTML 转换为格式良好、符合 XML 语法的 XHTML 或纯 XML 兼容结构。

确认 Tidy 支持 XML 输出模式

Tidy 默认输出是 HTML,要生成 XML 格式,必须启用 xml-outputxhtml 选项。两者略有区别

  • --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 模式下会主动修正以下典型问题:

  • 自闭合标签补全:将

    如何将不规范的HTML转换为格式良好的XML Tidy工具如何将不规范的HTML转换为格式良好的XML Tidy工具
  • 属性值强制加双引号:
  • 大小写统一:将大写标签名转为小写(

    ),符合 XML 规范

  • 嵌套错误修复:对

    ...

    这类非法嵌套尝试重排结构

  • 验证输出是否真正 XML 兼容

    生成文件后,可用简单方式验证是否满足基本 XML 要求:

    • python 快速测试:import xml.etree.ElementTree as ET; ET.parse("output.xhtml") —— 若无异常,则可被标准 XML 解析器加载
    • 检查首行是否有 XML 声明:(Tidy 默认不加,需手动添加或用 --add-xml-decl yes
    • 确保所有标签正确嵌套、闭合,无孤立 或未转义的 字符

text=ZqhQzanResources