Java 如何去除HTML中不重要的空白

Java 如何去除HTML中不重要的空白,java,html,whitespace,Java,Html,Whitespace,我必须比较不同版本的HTML页面的格式和文本更改。不幸的是,创建它们的人/公司使用某种HTML编辑器,每次都重新包装所有HTML(并添加大量空白),这使得区分它们变得很困难。因此,我正在寻找一种工具(最好是Java库),它可以重新格式化我的HTML,从而删除所有不重要的空格和换行符 也就是说,在 <h1>First Headline</h1> <h2>Second headline</h2> 第一个标题第二个标题 应删除和之间的空格,但以 &l

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

也就是说,在

<h1>First Headline</h1> <h2>Second headline</h2>
第一个标题第二个标题
应删除
之间的空格,但以

<b>formatted</b> <i>text</i>
格式化文本
不能删除空白。我不关心
块,也不关心可以改变行为的CSS空白属性-我只是在寻找一种解决方案,去除大部分不必要的空白(最好留下太多的空白,而不是太少)


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

可能在这里有用。它是一个HTML解析器,它解析HTML(并容忍不正确的HTML),并将HTML呈现为DOM,并且可以重写该文本以移除任何您不感兴趣的内容。

< P>如果仅用于内部使用,那么考虑使用转换器到XHTML,然后规范XML。这样比较结果就容易多了

Tidy:(输出xhtml选项-)


规范化:

它是符合DOM的干净HTML吗?在这种情况下,您有更多的选择。这远远不符合要求。不知道使用了哪个(wysiwyg)工具来创建和编辑文件,但是HTML非常糟糕(多个头部/身体标签,大量缺失等等)。不要忘记这样的东西。。。