我有一大块以编程方式生成的 HTML。我使用以下 Java 代码通过 Tidy(版本 r938)运行它:
StringReader inStr = new StringReader(htmlInput);
StringWriter outStr = new StringWriter();
Tidy tidy = new Tidy();
tidy.setXHTML(true);
tidy.parseDOM(inStr, outStr);
我得到以下输出:
InputStream: Document content looks like HTML 4.01 Transitional
247 warnings, 3 errors were found!
This document has errors that must be fixed before
using HTML Tidy to generate a tidied up version.
麻烦的是,Tidy 没有告诉我它发现了什么 3 个错误。
我在这里撒了一点小谎。上面的输出实际上遵循所有 247 个警告的长列表(主要是修剪空div
元素)。我可以压制那些有tidy.setShowWarnings(false)
; 无论哪种方式,我都没有看到错误报告,所以我无法弄清楚我需要修复什么。300Kb 的 HTML 对我来说太多了。
我尝试了多种方法来查找错误。遗憾的是,我无法通过 validate.w3.org 运行它,因为 HTML 文件位于专有网络上。信息最丰富的方法是在 IntelliJ IDEA 中打开它;这揭示了十几个重复的 div ID,我已修复。错误仍然发生。
我四处寻找有关此问题的其他提及。虽然我发现很多诸如“如何使用 JTidy 从解析的 HTML 中获取错误/警告消息?”之类的内容。,他们似乎都在要求不同的东西,或者假设条件根本不适合我。例如,我收到警告就好了;这是我需要的错误,即使我打电话setShowErrors(100)
或其他什么都没有报告。
我是否必须深入研究 Tidy 的源代码并对其进行调试,从它报告错误的地方开始?或者有什么更简单的我可以做的吗?