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

时间:2009-12-26 13:09:10

标签: java html whitespace

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

这意味着,在

<h1>First Headline</h1> <h2>Second headline</h2>

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

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

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

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

如果这仅供内部使用,那么请考虑使用转换器到XHTML,然后规范化XML。然后比较结果要容易得多。

整洁:http://tidy.sourceforge.net/(output-xhtml选项 - http://tidy.sourceforge.net/docs/quickref.html#output-xhtml

Canonicalize:http://en.wikipedia.org/wiki/Canonical_XML