J'essaie d'utiliser jTidy pour joliment imprimer sur un extrait de code HTML que j'ai. Jusqu'à présent, j'ai fait ce qui suit.jTidy - Jolie impression sans tête, balises de titre
protected String prettyPrintHTML(String rawHTML) {
Tidy tidy = new Tidy();
tidy.setXHTML(true);
tidy.setIndentContent(true);
tidy.setPrintBodyOnly(true);
tidy.setTidyMark(false);
// Convert HTML to DOM
Document htmlDOM = tidy.parseDOM(new ByteArrayInputStream(rawHTML.getBytes()), null);
// Pretty Print
OutputStream out = new ByteArrayOutputStream();
tidy.pprint(htmlDOM, out);
return out.toString();
}
Cela fonctionne, mais la sortie inclut du contenu supplémentaire tel que <html>, < tête >, <titre> et <corps> tags.
Par exemple, pour l'entrée <ul> <li> sub1 </li > <li> SUB2 <ul> <li> sub21 </li > </ul > </li > </ul > ce qui donne,
line 1 column 59 - Warning: inserting missing 'title' element
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
</title>
</head>
<body>
<ul>
<li>
sub1
</li>
<li>
sub2
<ul>
<li>
sub21
</li>
</ul>
</li>
</ul>
</body>
</html>
Après avoir parcouru l'API, je et la méthode setPrintBodyOnly
(que j'ai utilisée plus haut), mais toujours pas de chance.
Qu'est-ce qui me manque ici? J'ai essayé Google, mais jusqu'à présent tous les liens mènent à des impasses.