¿Es posible convertir HTML en XHTML con Jsoup 1.8.1?

String body = "
"; Document document = Jsoup.parseBodyFragment(body); document.outputSettings().escapeMode(EscapeMode.xhtml); String str = document.body().html(); System.out.println(str);

esperar:

resultado:

¿Puede Jsoup convertir HTML de valor en XHTML?

Ver Document.OutputSettings.Syntax.xml :

 private String toXHTML( String html ) { final Document document = Jsoup.parse(html); document.outputSettings().syntax(Document.OutputSettings.Syntax.xml); return document.html(); } 

Debería decirle a la syntax que desea dejar la cadena en HTML o XML.

 public String parserXHtml(String html) { org.jsoup.nodes.Document document = Jsoup.parseBodyFragment(html); document.outputSettings().syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml); //This will ensure the validity document.outputSettings().charset("UTF-8"); return document.toString(); } 

Puede usar JTidy API para hacer esto. Utilice jtidy-r938.jar

Puede usar el siguiente método para obtener xhtml de html

 public static String getXHTMLFromHTML(String inputFile, String outputFile) throws Exception { File file = new File(inputFile); FileOutputStream fos = null; InputStream is = null; try { fos = new FileOutputStream(outputFile); is = new FileInputStream(file); Tidy tidy = new Tidy(); tidy.setXHTML(true); tidy.parse(is, fos); } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ if(fos != null){ try { fos.close(); } catch (IOException e) { fos = null; } fos = null; } if(is != null){ try { is.close(); } catch (IOException e) { is = null; } is = null; } } return outputFile; }