如何使用JSoup或HTMLCleaner缩短HTML代码

时间:2017-01-16 12:13:22

标签: java html jsoup htmlcleaner

大家好日子。我试图在数据库中保存HTML代码,我正在使用SHEF(Swing HTML Editor Framework),但我有一个很大的问题。通常,生成的HTML如下所示:

<div>
This is the first paragraph
</div>
<div>
This is the second paragraph.
</div>
<div>
This is the last paragraph.
</div>

我想“清理”html代码并使结果看起来像这样:

<div>
This is the first paragraph
<br>
This is the second paragraph.
<br>
This is the last paragraph.
</div>

我尝试使用HTMLCleanerJSoup,但我没有成功。我只能使JSoup工作

<div>
This is the first paragraph
</div>
<div>

</div>
<div>
This is the last paragraph.
</div>

成为

<div>
This is the first paragraph
</div>
<br>
<div>
This is the last paragraph.
</div>

这是我使用的JSoup代码:

Document source = Jsoup.parse(sourceString);

// For each element
for(Element el: source.select("*")) {

   if(el.children().isEmpty() && !el.hasText() && el.isBlock()) {
       el.replaceWith(new Element(Tag.valueOf("br"), ""));//replace empty tags with newline
   }
}
return source.body().html();

有没有办法让生成的HTML代码缩短?谢谢!

1 个答案:

答案 0 :(得分:2)

我建议,不要乱用HTML并尝试最小化它,你只需要压缩它并将其保存到你的数据库中(并在出路时充气)。

CPU开销很小,节省的费用会更高。而且您的代码将更简单,更通用。 gzip for HTML通常提供75%-80%的压缩比,而删除一些标签会给你什么,10%?

以下是compress / decompress的示例。