我必须比较不同版本的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空白属性 - 我只是在寻找一种解决大部分不必要问题的解决方案空白(最好留下太多的空白而不是太少)。
(我已经在折叠多个空格并在标签之前重新添加换行符而不是空格,以使文本更具可读性 - 但是仍有太多情况,例如标题或表格单元格/行之间的新换行符会破坏我的简单“溶液”。)
答案 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