【导语:jsoup 是处理 HTML 和 XML 的 Java 库,其 1.23.1 版本现已发布,配备更快且更省内存的解析器,在多方面提升兼容性与安全性,性能优化显著。】
jsoup 1.23.1 配备了更快且更节省内存的 HTML 解析器,在`noscript`、CDATA、SVG 和 MathML 解析方面进一步提升了与 HTML 标准的兼容性。同时,实现了更安全且符合规范的 HTTP 重定向。新增快速的不可变`Element#classList()`方法,支持将外层 HTML 直接输出到`Appendable`对象。
性能优化是本次版本更新的重点。在 OpenJDK 21 基准测试中,普通字符串解析速度平均提升了18%,从`InputStream`进行解析的速度提升了11%,而带源位置跟踪的解析速度提升了70%,同时每个文档的内存占用减少了64%。
对于典型的中大型文档,支持源位置跟踪的 DOM 占用的内存减少了58%至65%,并且在并发解析的情况下,这种改进不会引入新的资源争用。不过,具体的内存节省量会因文档结构、JVM 和硬件配置而异。
此版本还修复了 Cleaner 中的一个安全问题,当使用允许某些原始文本元素的自定义`Safelist`清理格式错误的 HTML 时,该问题可能导致标记信息泄露。内置的 Safelists 不受此影响。
编辑观点:jsoup 1.23.1 版本在性能和安全方面均有显著提升,解析速度和内存占用的优化将为开发者带来更高效的使用体验,安全问题的修复也进一步增强了库的稳定性。