为什么Jsoup在遇到丢失的标签时不报告错误?

时间:2014-04-02 10:09:22

标签: java jsoup

我理解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。知道为什么这样做吗?这是一个错误吗?

1 个答案:

答案 0 :(得分:0)

这不是一个错误。

在解析使用未关闭标记的无效HTML 时,浏览器会遵循标准。

1.7.2版本中的错误已在1.7.3版本中修复

你可以在这里查看:

stackoverflow

中的错误报告

github

中的错误报告