jsoup Changelog Archive Contains change notes for versions 0.1.1 (2010-Jan-31) through 1.17.1 (2023-Nov-27). More recent changes may be found in CHANGES.md. Release 1.17.1 [27-Nov-2023] * Improvement: in Jsoup.connect(), added support for request-level authentication, supporting authentication to proxies and to servers. * Improvement: in the Elements list, added direct support for `#set(index, element)`, `#remove(index)`, `#remove(object)`, `#clear()`, `#removeAll(collection)`, `#retainAll(collection)`, `#removeIf(filter)`, `#replaceAll(operator)`. These methods update the original DOM, as well as the Elements list. * Improvement: added the NodeIterator class, to efficiently traverse a node tree using the Iterator interface. And added Stream Element#stream() and Node#nodeStream() methods, to enable fluent composable stream pipelines of node traversals. * Improvement: when changing the OutputSettings syntax to XML, the xhtml EscapeMode is automatically set by default. * Improvement: added the `:is(selector list)` pseudo-selector, which finds elements that match any of the selectors in the selector list. Useful for making large ORed selectors more readable. * Improvement: repackaged the library with native (vs automatic) JPMS module support. * Improvement: better fidelity of source positions when tracking is enabled. And implicitly created or closed elements are tracked and detectable via Range.isImplicit(). * Improvement: when source tracking is enabled, the source position for attribute names and values is now available. Attribute#sourceRange() provides the ranges. * Improvement: when running concurrently under Java 21+ Virtual Threads, virtual threads could be pinned to their carrier platform thread when parsing an input stream. To improve performance, particularly when parsing fetched URLs, the internal ConstrainableInputStream has been replaced by ControllableInputStream, which avoids the locking which caused that pinning. * Improvement: in Jsoup.Connect, allow any XML mimetype as a supported mimetype. Was previously limited to `{application|text}/xml`. This enables for e.g. fetching SVGs with a image/svg+xml mimetype, without having to disable mimetype validation. * Bugfix: when outputting with XML syntax, HTML elements that were parsed as data nodes (