jsoup 1.22.1 宣布,Java HTML 解析器

jsoup 1.22.1 现已发布,新增了对re2j正则表达式引擎的支持(用于基于正则表达式的 CSS 选择器),可配置的最大解析深度,以及大量错误修复和改进。 改进 新增了对re2j正则表达式引擎的支持,用于基于正则表达式的...

应用介绍

Internal Changes

  • 已弃用的内部帮助函数org.jsoup.internal.Functions(将在 v1.23.1 版本中移除)。#2412

jsoup 1.22.1 现已宣布,新增了对re2j正则表达式引擎的支撑(用于基于正则表达式的 CSS 选择器),可设备的最大年夜解析深度,以及大年夜量缺点修复和改进。

改进

  • 新增了对re2j正则表达式引擎的支撑,用于基于正则表达式的 CSS 选择器((例如[attr~=regex], :matches(regex))。这使得处理用户供给的随便率性查询正则表达式加倍安然。要启用此功能,将com.google.re2j依附项添加到类路径中,例如:
 <dependency> <groupId>com.google.re2j</groupId> <artifactId>re2j</artifactId> <version>1.8</version> </dependency>

(假如你的类路径中已经包含了该依附项,但仍然想应用 Java 正则表达式引擎,可以经由过程System.setProperty("jsoup.useRe2j", "false")禁用 re2j 。)可以经由过程调用Regex.usingRe2j()来确认 re2j 引擎是否已精确启用。#2407

  • 新增了一个实例办法Parser#unescape(String, boolean),该办法应用解析器的设备来解转义 HTML 实体(例如,为了支撑缺点跟踪),作为现有静态实用法度榜样Parser.unescapeEntities(String, boolean)的弥补。#2396
  • 为 HTML 和 XML 解析器都添加了可设备的最大年夜解析深度(用于限制客栈中打开的元素数量)。HTML 解析器的默认深度如今为 512,以匹配浏览器行动并防止客栈无穷增长;XML 解析器默认保持无穷制深度,但可以经由过程Parser.setMaxDepth()选择限制深度。#2421
  • Build:添加了对 JDK 25 的 CI coverage #2403
  • Build:新增了用于高低文片段解析的 CI 模糊测试器(除了现有的完全 HTML 和 XML 模糊测试器之外)。oss -fuzz #14041

变更

  • 为之前已弃用的 API 制订 jsoup 1.24.1 的移除筹划。

缺点修复

  • 先前在Node#WordStrWith(Node)中未精确掉效元素的缓存子元素,可能导致后续调用Element#children()时出现缺点成果。#2391
  • 属性选择器值现采取字面比较且不进行修剪。此前 jsoup 会从选择器值及元素属性值中去除空格,这可能导致与浏览器行动不一致(例如[attr=" foo "])。现已与 CSS 规范及浏览器引擎保持一致。#2380
  • 应用 JDK HttpClient 时,体系默认代理ProxySelector.getDefault()会被忽视。现已修改:若未设置请求级代理,则应用体系代理。#2388,#2390
  • adoption agency 算法在处理严重破坏的输入时可能抛出ValidationException。现已改为记录为解析缺点。#2393
  • HTML 正文中的空字符未被一致地移除;外部内容中的空字符也未精确调换。#2395
  • 解析经由构造的正文片段时可能抛出IndexOutOfBoundsException异常。现改为记录为解析缺点。 #2397,#2406
  • ……

详情可查看更新解释:https://jsoup.org/news/release-1.22.1

点赞(0) 打赏

立即下载

相关下载

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部