jsoup 1.17.2 发布,Java HTML 解析器

jsoup 1.17.2 现已发布。jsoup 是一个用于处理 real-world HTML 的 Java 库。它使用最好的 HTML5 DOM 方法和 CSS 选择器提供了一个非常方便的 API 用于提取和操作数据。

下载地址:https://jsoup.org/download

具体更新内容包括:

改进

  • Attribute object accessors:添加Element.attribute(String)Attributes.attribute(String)以便更简单地获取Attribute对象。2069
  • Attribute source tracking:如果 source tracking 已打开,并且属性的键已更改(通过Attribute.setKey(String)),则现在仍会在Attribute.sourceRange()中跟踪 source range。2070
  • Wildcard attribute selector:添加了对具有任何属性选择器的[*]元素的支持。并且还恢复了对通过空属性名称前缀 ( [^]) 选择的支持。2079

Bug 修复

  • Mixed-cased source position:跟踪属性的源位置时,如果源属性名称是混合大小写的,但解析器是小写规范化属性名称,则无法正确跟踪该属性的源位置。2067
  • Source position NPE:跟踪正文片段解析的源位置时,抛出空指针异常。2068
  • Multi-point emoji entity:多点编码的表情符号实体可能会被错误地解码为替换字符。2074
  • Selector sub-expressions:(回归)在像parent [attr=va], other之类的选择器中,, OR被绑定到[attr=va]而不是parent [attr=va],导致不正确的选择。该修复包含一个 EvaluatorDebug 类,可生成一个 sexpr 来表示查询,从而使查询解析测试更简单、更彻底。2073
  • XML CData output:从解析的 HTML 生成 XML 语法输出时,包含(伪)CData部分的脚本节点将添加无关的 CData 部分,从而导致脚本执行错误。现在,
    如果数据尚未位于 CData部分中,则数据内容将以 HTML/XML/XHTML 多语言格式发出。2078
  • Thread safety:hasevaluator 持有一个非线程安全的迭代器,因此如果多个并发线程共享一个 Evaluator object,可能会抛出 NoSuchElement 异常,并且选择的结果可能不正确。现在,迭代器对象是线程本地的。2088

更新说明:https://github.com/jhy/jsoup/releases/tag/jsoup-1.17.2

猜你喜欢

转载自www.oschina.net/news/273388/jsoup-1-17-2-released
今日推荐