我理解Jsoup的行为是尝试do the best by adding missing tag or removing existing tag。它仍然应该在错误解析器列表中报告。以下是我的示例代码。
final String test = "<img /><noscript><a href=\"http://www.google.com\">google</a>";
Parser parser = Parser.htmlParser();
parser.setTrackErrors(10);
Document document = parser.parseInput(test, StringUtils.EMPTY);
System.out.println("BEFORE: " + test);
System.out.println("JSPARSED: " + StringUtils.remove(document.body().html(), "\n"));
System.out.println("Tracking errors: " + parser.isTrackErrors());
System.out.println("Number of errors: " + parser.getErrors().size());
这给了我:
ORIGINAL: <img /><noscript><a href="http://www.google.com">google</a>
JSPARSED: <img /><noscript> <a href="http://www.google.com">google</a></noscript>
Tracking errors: true
Number of errors: 0
请注意,Jsoup插入了一个新的nonscript封闭标记,但未在错误列表中报告该问题。我正在使用Jsoup 1.7.3。知道为什么这样做吗?这是一个错误吗?
答案 0 :(得分:0)
这不是一个错误。
在解析使用未关闭标记的无效HTML 时,浏览器会遵循标准。
1.7.2版本中的错误已在1.7.3版本中修复
你可以在这里查看:
中的错误报告 中的错误报告