java - 为什么Jsoup遇到标签丢失不报错?

标签 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 插入了一个新的非脚本封闭标记,但没有在错误列表中报告该问题。我正在使用 Jsoup 1.7.3。知道为什么要这样做吗?这是错误吗?

最佳答案

这不是错误。

在解析带有未闭合标签的无效 HTML 时,它遵循浏览器的标准。

这是 1.7.2 版本中的一个错误,已在 1.7.3 版本中修复

你可以在这里查看:

错误报告 stackoverflow

错误报告 github

关于java - 为什么Jsoup遇到标签丢失不报错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808101/

相关文章:

java - 使用 jSoup 解析 CSS

Java Jsoup换行问题

java - 使用 jsoup 在站点上查找特定文件

java - 如何使用JAVA从html页面获取表格

java - 当变量在父类(super class)中 protected 时,子类如何将变量设为私有(private)?

java - 为什么 Java 在内部将匿名类创建为静态的?

java - java类路径规范中 "*:"的含义

java - 无法从java中的属性文件中读取特殊字符,例如#

java - 从 jar 文件访问文件和图像

java - 如何使用 JSoup 从 Android 中的 url 中的嵌入式 url 获取远程视频的直接链接?