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

mih*_*ihi 3 html java whitespace

我必须比较HTML页面的不同版本以进行格式化和文本更改.不幸的是,创建它们的人/公司使用某种HTML编辑器,每次重新包装所有HTML(并增加大量的空白),这使得很难区分它们.所以我正在寻找一种工具(最好是一个Java库),它可以重新格式化我的HTML,以便删除所有无关紧要的空格和换行符.

这意味着,在

<h1>First Headline</h1> <h2>Second headline</h2>
Run Code Online (Sandbox Code Playgroud)

之间的空间</h1>,并<h2>应被删除,但在

<b>formatted</b> <i>text</i>
Run Code Online (Sandbox Code Playgroud)

空格可能无法删除.我不关心<pre>,<textarea><script>阻止,也不关心可以改变行为的CSS空白属性 - 我只是在寻找一个解决大多数不必要的空白的解决方案(最好留下太多的空白而不是太少).

(我已经折叠了多个空格并在标签之前重新添加换行符而不是空格,以使文本更具可读性 - 但是仍有太多情况,例如标题或表格单元格/行之间的新换行符打破了我的简单"解决方案" .)

Bri*_*new 7

JTidy可能在这里有用.它是一个解析HTML的HTML解析器(并且容忍格式错误的HTML),并将HTML呈现为DOM,您可以覆盖写出来删除您不感兴趣的内容.