我在我的应用程序中嵌入了HTML Tidy来清理传入的HTML。但是Tidy有很多错误,直接在源头修复它是我最糟糕的噩梦。整洁的源代码是不可读的憎恶。千行+函数,差可变命名,意大利面条代码等。这真的太可怕了。
更糟糕的是,官方发展seems to have ceased。在过去的12个月中,已经有三个写入官方CVS回购的交易。但是它已经死了并埋葬了比这更长的时间......
所以我正在寻找可以做Tidy所能做的OSS C或C ++应用程序/库(感觉就好):修复错误的HTML标记并将其转换为有效的XHTML(这是我感兴趣的部分)在)。我指的是各种糟糕的标记。
那里有类似的东西吗?
编辑:我需要它来通过XML处理工具对DOM树进行操作,并且通常符合XHTML规范。我的应用需要接受来自用户的HTML(通常在各种方式都无效)并输出有效的XHTML。它需要能够处理通常不会在浏览器中显示的HTML,因为用户手动编辑它并且之后没有检查。
直接替换Tidy的纠错解析器......这并不吸引人。我不介意错误,如果源是可读的,我可以自己修复问题,或者是否有活跃的开发人员及时提供错误修正。
答案 0 :(得分:2)
您能告诉我们您打算使用此工具吗?如你所知,你想修复静态网页,还是想在其他操作之前进行某种过滤步骤,以便某些工具可以处理错误的网页?
就我个人而言,无论什么时候需要,我都会在Python的BeautifulSoup或lxml上编写自己的工具---它最多只有十几行脚本并完成我想要的大部分工作。
答案 1 :(得分:2)
有一个新的,漂亮的,正确的HTML 5支持Tidy,因此旧的丑陋Tidy的替代方案是Tidy(GitHub repository)。
答案 2 :(得分:1)
尝试Pretty Diff。它是一种非常优越的美化算法,它不会对您的输入做出任何假设。
答案 3 :(得分:0)
对于实际修复代码的内容,最好的选择仍然是HTML Tidy。除了Tidy之外,还有很多短语,但实际上并没有任何修复HTML错误的内容。
乍一看,现代OOP程序员可能会认为源代码是不可读的憎恶,但在C世界中,Tidy是一个相当复杂的库,它使用了许多先进的OO概念并提供了非常贴心的界面,几乎可以在纯C API中公开它的所有功能。
休闲开发者将会迷失方向,但一旦沉浸其中,代码就会非常漂亮。当然,命名约定 混合不好,但欢迎PR!