您现在的位置是:首页 > 文章详情

jsoup 1.21.2 发布,Java HTML 解析器

日期:2025-08-25点击:41

jsoup 1.21.2 现已发布,新增了对 HTTP/2 连接中自定义SSLContext的支持,并提升了属性中用户数据处理方式的一致性。此外,它还提升了 DOM 操作和片段解析的性能,并修复了流解析、遍历、克隆和并发读取中的一些边缘情况。

变化

改进

  • 当进行 pretty-printing 时,如果有连续的文本节点(通过 DOM 操作),则它们之间的非重要空白将被折叠。#2349
  • 更新Connection.Response#statusMessage()为在使用HttpClient实现时返回一个简单的可记录字符串消息(例如“OK”),否则不会返回任何服务器设置的状态消息。#2356
  • Attributes#size()Attributes#isEmpty()现在​​​​​​​将所有内部属性(例如用户数据)排除在其计数之外。这与属性的序列化输出和迭代器保持一致。#2369
  • 添加Connection#sslContext(SSLContext)以向请求提供自定义 SSL (TLS) 上下文,同时支持HttpClient和旧版HttUrlConnection实现。#2370
  • 针对 DOM 操作方法的性能优化,包括在多次移除元素的第一个子元素(element.child(0).remove()),以及使用Parser#parseBodyFragement()解析大量直接子元素时的情景。#2373。​​​​​​​

错误修复

  • 当从 InputStream 进行解析并且多字节字符恰好跨越缓冲区边界时,流将无法完全读取。#2353
  • NodeTraversor中,如果在head()调用期间删除了最后一个子元素,则父元素会被访问两次。#2355
  • 克隆具有 Attributes 对象的 Element 会向该克隆添加一个空的内部用户数据属性,这会导致Attributes#size()Attributes#isEmpty()出现意外结果。#2356
  • 在多线程应用程序中,多个线程同时调用同一元素Element#children()时,该方法生成内部子元素缓存(其子节点的筛选视图)时可能会发生竞争条件。由于 DOM 对象的并发读取应该是线程安全的,无需外部同步,因此该方法已更新为原子执行。#2366
  • 格式错误的 HTML 可能会在 adoption agency 期间抛出 IndexOutOfBoundsException。#2377

详情可查看:https://jsoup.org/news/release-1.21.2

原文链接:https://www.oschina.net/news/368253/jsoup-1-21-2-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章