2011-06-19 4 views
2

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.

Répondre