Фрагмент форматирования HTML jericho, jTidy или JSoup?

Я хочу отформатировать/сделать отступ фрагмента HTML

String html = "<div><p>text1</p></div><div><p>text2</p></div>";

в это

<div>
  <p>text1</p>
</div>
<div>
  <p>text2</p>
</div>

Я пробовал jTidy и JSoup, однако они корректируют мой HTML с помощью и/или или . Я хочу иметь что-то, что будет просто форматировать часть моего HTML, как в примере выше.

Я нашел jericho, и, похоже, он делает то, что я хочу, но я бы предпочел использовать jTidy/JSoup.

Можно ли делать то, что я хочу, с помощью jTidy или JSoup?


person Dmytro Pastovenskyi    schedule 29.03.2015    source источник


Ответы (1)


jSoup может сделать это:

String html = "<div><p>text1</p></div><div><p>text2</p></div>";
Document doc = Jsoup.parseBodyFragment(html);
System.out.println(doc.body().children());

Вывод:

<div>
 <p>text1</p>
</div>
<div>
 <p>text2</p>
</div>
person JonasCz    schedule 30.03.2015
comment
Но как я могу справиться с ситуацией, когда мой фрагмент является частью головы? или есть голова и тело вместе? - person Dmytro Pastovenskyi; 31.03.2015
comment
@Dmytro Если у вас есть полный HTML (включая <html>, <head> и <body>), используйте Jsoup.parse(html); System.out.println(doc); Jsoup также имеет режим синтаксического анализа XML, который игнорирует требования HTML и анализирует все что угодно. См. здесь - person JonasCz; 31.03.2015