如何去除HTML中无关紧要的空格

3
我需要比较不同版本的HTML页面格式和文本更改。不幸的是,制作这些页面的人/公司使用某种HTML编辑器每次都重新包装HTML(并添加了大量空格),这使得难以对它们进行差异化处理。因此,我正在寻找一种工具(最好是Java库),可以以删除所有无关空格和换行符的方式重新格式化我的HTML。
也就是说,在
<h1>First Headline</h1> <h2>Second headline</h2>

之间的空格应该被删除,但在

<b>formatted</b> <i>text</i>

空格可能不能被移除。我不关心<pre><textarea><script>块,也不关心可以改变行为的CSS空格属性——我只是在寻找一个解决方案,它会剥离大部分不必要的空格(最好留下过多的空格而不是过少的)。
(我已经折叠了多个空格,并在标签之前重新添加换行符而不是空格,以使文本更易读——但仍有太多情况下,例如标题或表格单元格/行之间的新换行符会破坏我的简单“解决方案”。)


它是否符合DOM标准的干净HTML?如果是,你就有更多的选择。 - bmargulies
它远非符合标准。不知道使用了哪种所见即所得的工具来创建和编辑这些文件,但 HTML 代码非常糟糕(有多个 head/body 标签、很多缺少的 </tr> 和 </td> 等等)。 - mihi
不要忘记像<b>th</b><i></i><b>is</b>这样的东西。 - mihi
2个回答

7

JTidy可能对您有用。它是一个HTML解析器,可以解析HTML(并且可以容忍格式不正确的HTML),将HTML呈现为DOM,并且您可以覆盖写出此内容以删除您不感兴趣的任何内容。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接