1
我解析与Jsoup.parse一段HTML的预防Jsoup.parse。从去除收盘</img>标签
其他一切是伟大的,但我应该在PDF转换后解析这个网站。
出于某种原因,Jsoup.parse删除结束标记和PDF解析器抛出约缺少的结束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>
变为:
<img src="C:\path\to\image\image.png">
同样的,发生:
<img src="C:\path\to\image\image.png"/>
下面的代码:
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();
}
这里的tidyUpHTML-方法被调用上述方法:
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(" "," ");
return fixedTags;
}
能否请您发表您的Jsoup解析的代码,这样我们就可以明白为什么它删除结束标记。 – SachinSarawgi
@SachinSarawgi,已更新 –