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
©软件著作权归作者所有。本站所有软件均来源于网络,仅供学习使用,请支持正版!
转载请注明出处: FQPY » jsoup 1.22.1 宣布,Java HTML 解析器

发表评论 取消回复