tutorial selectors parse body java html xhtml jsoup

java - selectors - ¿Es posible convertir HTML en XHTML con Jsoup 1.8.1?



jsoup selectors (3)

Consulte 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(); }

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

esperar: <br />

resultado: <br>

¿Puede Jsoup convertir HTML de valor en XHTML?


Debes indicar que la sintaxis quieres 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(); }


Puedes usar la API de JTidy para hacer esto. Utilice jtidy-r938.jar

Puedes 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; }