2016-12-08 35 views
1

私はJsoup.parseでhtmlを解析しています。Jsoup.parseが閉じるのを防ぐのを防ぐ</img>タグ

他にもすばらしいですが、後でpdfコンバータでこのhtmlを解析するはずです。

何らかの理由でJsoup.parseが終了タグを削除し、pdf-parserが欠落しているimgタグの終了に関する例外をスローします。

Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException; 
lineNumber: 115; columnNumber: 4; The element 
type "img" must be terminated by the matching end-tag "</img>" 

Jsoup.parseが閉じるimgタグを削除しないようにするにはどうすればよいですか?

たとえばこの行:

<img src="C:\path\to\image\image.png"> 

同じことが起こると::

<img src="C:\path\to\image\image.png"></img> 

はターン

private void createPdf(File file, String content) throws IOException, DocumentException { 
     OutputStream os = new FileOutputStream(file); 
      content = tidyUpHTML(content); 
      ITextRenderer renderer = new ITextRenderer(); 
      renderer.setDocumentFromString(content); 
      renderer.layout(); 
      renderer.createPDF(os); 
     os.close(); 
    } 
:ここ

<img src="C:\path\to\image\image.png"/> 

コードですここ

は、上記の方法で呼び出されtidyUpHTML-方法です:(それはクロージングimgタグを見込んでいるため)

private String tidyUpHTML(String html) { 
    org.jsoup.nodes.Document doc = Jsoup.parse(html); 
    doc.select("a").unwrap(); 
    String fixedTags = doc.toString().replace("<br>", "<br />"); 
    fixedTags = fixedTags.replace("<hr>", "<hr />"); 
    fixedTags = fixedTags.replaceAll("&nbsp;","&#160;"); 
    return fixedTags; 
} 
+0

を参照してくださいその終了タグを削除し、なぜ私たちが見ることができるようにあなたは、Jsoup解析のコードを投稿してくださいでした。 – SachinSarawgi

+0

@SachinSarawgi、更新 –

答えて

4

あなたのPDFコンバータは、XHTMLを期待しています。 Jsoupをxhtml(xml)に出力するように設定してください。

org.jsoup.nodes.Document doc = Jsoup.parse(html); 
document.outputSettings().syntax(Document.OutputSettings.Syntax.xml); 
doc.select("a").unwrap(); 
String fixedTags = doc.html(); 

Is it possible to convert HTML into XHTML with Jsoup 1.8.1?

関連する問題