[JSOUP]为什么1.6.x删除TD标签,升级到1.6.x时出现问题
System.out.println(Jsoup.parseBodyFragment("<td>123</td>").html());
jsoup 1.5.2 输出:
<html>
<head></head>
<body>
<table>
<tbody>
<tr>
<td>123</td>
</tr>
</tbody>
</table>
</body>
</html>
jsoup 1.6.x(1.6.0 和 1.6.1)输出:
<html>
<head></head>
<body>
123
</body>
</html>
为什么 1.6.x 删除 TD
标签?
如何在 1.6.x 中获取 jsoup 1.5.x 输出?
System.out.println(Jsoup.parseBodyFragment("<td>123</td>").html());
jsoup 1.5.2 OUTPUT:
<html>
<head></head>
<body>
<table>
<tbody>
<tr>
<td>123</td>
</tr>
</tbody>
</table>
</body>
</html>
jsoup 1.6.x (1.6.0 and 1.6.1) OUTPUT:
<html>
<head></head>
<body>
123
</body>
</html>
why 1.6.x remove TD
tags?
how can I get jsoup 1.5.x OUTPUT in 1.6.x?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 jsoup 1.6 中,我重写了 HTML 解析器来实现 whatwg HTML 规范,它与浏览器当前解析 HTML 的方式相匹配。
这里的影响是,在 1.5 中,
足以自动激活
;然而浏览器实际上并不是这样工作的,因此在 1.6 中您需要更新 HTML 输入以引入
标记。
例如:
将生成:
请注意,
希望这有帮助!
In jsoup 1.6 I have rewritten the HTML parser to implement the whatwg HTML spec, which matches how browsers currently parse HTML.
The impact here is that in 1.5, a
<td>
was enough to auto-vivify a<table>
; however browsers don't actually work that way, so in 1.6 you'll need to update your HTML input to introduce the<table>
tag.For example:
will produce:
Note that the
<table><td>
gets normalised to<table><tbody><tr><td>...
.Hope this helps!