栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSOUP为HTML添加额外的编码内容

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSOUP为HTML添加额外的编码内容

实际上,jsoup不会添加编码的东西。Jsoup只是添加了 似乎 缺少的结束标记。让我解释。

首先,jsoup尝试格式化html。在您的情况下,这意味着它将添加缺少的结束标记。

document doc = Jsoup.parse("<div>test<span>test");System.out.println(doc.html());

输出:

<html> <head></head> <body>  <div>   test   <span>test</span>  </div> </body></html>

如果您检查已编码的内容,您将意识到它们正在关闭标签。

&lt;/div&gt;  = </div> &lt;/div&gt;  = </div>&lt;/body&gt; = </body>

如果您转到该站点并按

Ctrl
+
U
(使用chrome),则将看到jsoup将解析的内容。Chrome会将颜色赋予其可以识别的有效html标签。由于某种奇怪的原因,它无法识别底部的标签(与转义字符显示的标签相同)。出于同样的原因,jsoup的那些结束标记也存在问题。它不会将它们视为结束标签,而是将其视为文本,因此它会将它们转义,然后通过添加这些标签来规范化html,如我之前所述。

编辑 我设法复制行为。

document doc = Jsoup.parse("<iframe /><span>test</span>");System.out.println(doc.html());

您可以看到完全相同的行为。问题在于自动关闭iframe。像这样解决问题

document doc = Jsoup.parse("<iframe></iframe><span>test</span>");System.out.println(doc.html());

编辑2 如果您只想接收html而无需构建文档对象,则可以执行此操作

Connection.Response html = Jsoup.connect("http://iqtestsites.adtech.de/pictelatest/custombkgd/StylelistDevil.html").execute();System.out.println(html.body());

有了上述内容,您可以找到自动关闭的iframe,并将其替换为有效的表示形式(或将其完全删除)。然后,您可以使用解析该字符串。

Jsoup.parse()

这将解决在iframe之后无法识别结束标记的问题,因为它将是有效的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570200.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号