代码之家  ›  专栏  ›  技术社区  ›  mihi

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

  •  3
  • mihi  · 技术社区  · 15 年前

    我必须比较不同版本的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 回复  |  直到 15 年前
        1
  •  7
  •   Brian Agnew    15 年前

    JTidy 可能在这里有用。它是一个HTML解析器,可以解析HTML(并且可以容忍格式错误的HTML),并将HTML表示为一个DOM,您可以重写其中的内容,以删除您不感兴趣的内容。

        2
  •  1
  •   Thorbjørn Ravn Andersen    15 年前

    如果这只是内部使用,那么考虑使用XHTML转换器,然后规范化XML。然后比较结果就容易多了。

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

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