fix(deps): update dependency org.jsoup:jsoup to v1.21.1 #47
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.18.3
->1.21.1
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
jhy/jsoup (org.jsoup:jsoup)
v1.21.1
Changes
:matchText
pseduo-selector due to its side effects on the DOM; use the new::textnode
selector and theElement#selectNodes(String css, Class type)
method instead. #2343Connection.Response#bufferUp()
in lieu ofConnection.Response#readFully()
which can throw a checked IOException.Validate#ensureNotNull
(replaced by typedValidate#expectNotNull
); protected HTML appenders from Attribute and Node.Improvements
Selector
to support direct matching against nodes such as comments and text nodes. For example, you can now find an element that follows a specific comment:::comment:contains(prices) + p
will selectp
elements immediately after a<!-- prices: -->
comment. Supported types include::node
,::leafnode
,::comment
,::text
,::data
, and::cdata
. Node contextual selectors like::node:contains(text)
,:matches(regex)
, and:blank
are also supported. IntroducedElement#selectNodes(String css)
andElement#selectNodes(String css, Class nodeType)
for direct node selection. #2324TagSet#onNewTag(Consumer<Tag> customizer)
: register a callback that’s invoked for each new or cloned Tag when it’s inserted into the set. Enables dynamic tweaks of tag options (for example, marking all custom tags as self-closing, or everything in a given namespace as preserving whitespace).TokenQueue
andCharacterReader
autocloseable, to ensure that they will release their buffers back to the buffer pool, for later reuse.Selector#evaluatorOf(String css)
, as a clearer way to obtain an Evaluator from a CSS query. An alias ofQueryParser.parse(String css)
.TagSet
) in a foreign namespace (e.g. SVG) can be configured to parse as data tags.NodeVisitor#traverse(Node)
to simplify node traversal calls (vs. importingNodeTraversor
).Connection#readFully()
as a replacement forConnection#bufferUp()
with an explicit IOException. Similarly, addedConnection#readBody()
overConnection#body()
. DeprecatedConnection#bufferUp()
. #2327<
and>
characters are now escaped in attributes. This helps prevent a class of mutation XSS attacks. #2337Connection
to prefer using the JDK's HttpClient over HttpUrlConnection, if available, to enable HTTP/2 support by default. Users can disable via-Djsoup.useHttpClient=false
. #2340Bug Fixes
script
in asvg
foreign context should be parsed as script data, not text. #2320Tag#isFormSubmittable()
was updating the Tag's options. #2323v1.20.1
Changes
<foo />
)to close HTML elements by default. Foreign content (SVG, MathML), and content parsed with the XML parser, still
supports self-closing tags. If you need specific HTML tags to support self-closing, you can register a custom tag via
the
TagSet
configured inParser.tagSet()
, usingTag#set(Tag.SelfClose)
. Standard void tags (such as<img>
,<br>
, etc.) continue to behave as usual and are not affected by thischange. #2300.
ChangeNotifyingArrayList
,Document.updateMetaCharsetElement()
,Document.updateMetaCharsetElement(boolean)
,HtmlTreeBuilder.isContentForTagData(String)
,Parser.isContentForTagData(String)
,Parser.setTreeBuilder(TreeBuilder)
,Tag.formatAsBlock()
,Tag.isFormListed()
,TokenQueue.addFirst(String)
,TokenQueue.chompTo(String)
,TokenQueue.chompToIgnoreCase(String)
,TokenQueue.consumeToIgnoreCase(String)
,TokenQueue.consumeWord()
,TokenQueue.matchesAny(String...)
Functional Improvements
Tags, and provide a cleaner path for ongoing improvements. The specific HTML produced by the pretty-printer may be
different from previous versions. #2286.
TagSet
tag collection.Their properties can impact both the parse and how content is
serialized (output as HTML or XML). #2285.
Element.cssSelector()
will prefer to return shorter selectors by using ancestor IDs when available and unique. E.g.#id > div > p
instead ofhtml > body > div > div > p
#2283.Elements.deselect(int index)
,Elements.deselect(Object o)
, andElements.deselectAll()
methods to removeelements from the
Elements
list without removing them from the underlying DOM. Also addedElements.asList()
methodto get a modifiable list of elements without affecting the DOM. (Individual Elements remain linked to the
DOM.) #2100.
Connection.requestBodyStream(InputStream stream)
. #1122.Attributes. Also, added
Tag#prefix()
,Tag#localName()
,Attribute#prefix()
,Attribute#localName()
, andAttribute#namespace()
to retrieve these. #2299.Element#cssSelector()
will emitappropriately escaped selectors, and the QueryParser supports those. Added
Selector.escapeCssIdentifier()
andSelector.unescapeCssIdentifier()
. #2297, #2305Structure and Performance Improvements
QueryParser
into a clearer recursive descentparser. #2310.
div >> p
) will throw an explicit parseexception. #2311.
#2307.
HTML. #2304.
Parser
instances threadsafe, so that inadvertent use of the same instance across threads will not lead toerrors. For actual concurrency, use
Parser#newInstance()
perthread. #2314.
Bug Fixes
serializing. #1496.
encoded). #1743.
Document
to the W3C DOM inW3CDom
, elements with an attribute in an undeclared namespace nowget a declaration of
xmlns:prefix="undefined"
. This allows subsequent serialization to XML viaW3CDom.asString()
to succeed. #2087.
StreamParser
could emit the final elements of a document twice, due to howonNodeCompleted
was fired when closing out the stack. #2295.?
in<?xml version="1.0"?>
wouldincorrectly emit an error. #2298.
Element#cssSelector()
on an element with combining characters in the class or ID now produces the correct output. #1984.v1.19.1
Changes
Jsoup.connect()
, when running on Java 11+, via the Java HttpClientimplementation. #2257.
System.setProperty("jsoup.useHttpClient", "true");
to enable making requests via the HttpClient instead ,which will enable http/2 support, if available. This will become the default in a later version of jsoup, so now is
a good time to validate it.
that as a Multi-Release
JAR.
HttpClient
impl is not available in your JRE, requests will continue to be made viaHttpURLConnection
(inhttp/1.1
mode).developers need to enable core library desugaring. The minimum Java version remains Java 8.
#2173
org.jsoup.UncheckedIOException
(replace withjava.io.UncheckedIOException
);moved previously deprecated method
Element Element#forEach(Consumer)
tovoid Element#forEach(Consumer())
. #2246Document#updateMetaCharsetElement(boolean)
andDocument#updateMetaCharsetElement()
, as thesetting had no effect. When
Document#charset(Charset)
is called, the document's meta charset or XML encodinginstruction is always set. #2247
Improvements
Safelist
that preserves relative links, theisValid()
method will now consider theselinks valid. Additionally, the enforced attribute
rel=nofollow
will only be added to external links when configuredin the safelist. #2245
Element#selectStream(String query)
andElement#selectStream(Evaluator)
methods, that return aStream
ofmatching elements. Elements are evaluated and returned as they are found, and the stream can be
terminated early. #2092
Element
objects now implementIterable
, enabling them to be used in enhanced for loops.Reader
viaParser#parseFragmentInput(Reader, Element, String)
. #1177jsoup-examples.jar
. #1702#id .class
(and other similar descendant queries) by around 4.6x, by betterbalancing the Ancestor evaluator's cost function in the query
planner. #2254
<isindex>
tags, which would autovivify aform
element with labels. This is nolonger in the spec.
Elements.selectFirst(String cssQuery)
andElements.expectFirst(String cssQuery)
, to select the firstmatching element from an
Elements
list. #2263through the HTML parser's bogus comment handler. Serialization for non-doctype declarations no longer end with a
spurious
!
. #2275<
are normalized to_
to ensure validXML. For example,
<foo<bar>
becomes<foo_bar>
, as XML does not allow<
in element names, but HTML5does. #2276
Bug Fixes
;
in an attribute name, it could not be converted to a W3C DOM element, and so subsequent XPathqueries could miss that element. Now, the attribute name is more completely
normalized. #2244
"name". #2241
Connection
, skip cookies that have no name, rather than throwing a validationexception. #2242
java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
could be thrown when calling
Response#body()
after parsing from a URL and the buffer size wasexceeded. #2250
null
InputStream inputs toJsoup.parse(InputStream stream, ...)
, by returningan empty
Document
. #2252template
tag containing anli
within an openli
would be parsed incorrectly, as it was not recognized as a"special" tag (which have additional processing rules). Also, added the SVG and MathML namespace tags to the list of
special tags. #2258
template
tag containing abutton
within an openbutton
would be parsed incorrectly, as the "in button scope"check was not aware of the
template
element. Corrected other instances including MathML and SVG elements,also. #2271
:nth-child
selector with a negative digit-less step, such as:nth-child(-n+2)
, would be parsed incorrectly as apositive step, and so would not match as expected. #1147
doc.charset(charset)
on an empty XML document would throw anIndexOutOfBoundsException
. #2266StructuralEvaluator
(e.g., a selector ancestor chain likeA B C
) byensuring cache reset calls cascade to inner members. #2277
doc.clone().append(html)
were not supported. When a document was cloned, itsParser
was not cloned but was a shallow copy of the original parser. #2281Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.