2017-01-16 8 views
0

Добрый день всем. Я пытаюсь сохранить код HTML в базе данных, и я использую SHEF(Swing HTML Editor Framework), но у меня есть огромная проблема. Обычно, сгенерированный HTML как это:Как сократить HTML-код с помощью JSoup или HTMLCleaner

<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> 

Я пытался использовать HTMLCleaner и JSoup, но Я этого не сделал. Я могу только сделать 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 код короче ? Благодаря!

+2

Чистка/редактирование HTML не имеет ничего общего с Swing. Не добавляйте тег Swing только из-за приложения. использует некоторые из Swing API. –

ответ

2

Я бы предположил, что вместо того, чтобы возиться с HTML и пытаться свести его к минимуму, вы просто gzip сжимаете его и вместо этого сохраняете его в своей БД (и раздуваете на выходе).

Накладные расходы процессора минимальны, а сбережения будут намного выше. И ваш код будет проще и более общим. gzip для HTML обычно дает коэффициент сжатия 75% -80%, в то время как удаление нескольких тегов даст вам, что, 10%?

Вот пример того, как compress/decompress.

+0

Я мог бы это сделать, но это повлияет на другие существующие приложения: / – triForce420