【问题标题】:How to strip insignificant whitespace out of HTML如何从 HTML 中去除无关紧要的空白
【发布时间】:2009-12-26 13:09:10
【问题描述】:

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

也就是说,在

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

&lt;/h1&gt;&lt;h2&gt; 之间的空格应该被删除,但是在

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

不能删除空格。我不关心 &lt;pre&gt;&lt;textarea&gt;&lt;script&gt; 块,也不关心可以改变行为的 CSS 空白属性 - 我只是在寻找一种解决方案,可以去除大部分不必要的空白(最好也离开空格多于少)。

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

【问题讨论】:

  • 它是符合 DOM 的干净 HTML 吗?在这种情况下,您有更多选择。
  • 它远非合规。不知道使用哪个(所见即所得)工具来创建和编辑文件,但 HTML 很糟糕(多个 head/body 标签,很多丢失的 和 等)。
  • 别忘了像 this...

标签: java html whitespace


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果这仅供内部使用,则考虑使用 XHTML 转换器,然后规范化 XML。这样比较结果就容易多了。

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

    规范化:http://en.wikipedia.org/wiki/Canonical_XML

    【讨论】:

      猜你喜欢
      • 2013-09-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多