GitHub user HansBrende opened a pull request:
https://github.com/apache/any23/pull/87
ANY23-350 fixed RDFParseException caused by malformed attributes
The RDFParseException was caused by the following malformed markup:
`<link rel=\"shortcut icon\">`
Jsoup then cleaned this up into:
`<link rel="\"shortcut" icon\"="">`
The problem with that was that the underlying SAX parser doesn't play well
with attribute names that contain quotes, so the attribute name `icon\"` caused
the following exception:
```
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 4536; Attribute
name "icon"
associated with an element type "link" must be followed by the ' = '
character.
at
org.semarglproject.rdf4j.rdf.rdfa.RDF4JRDFaParser.parse(RDF4JRDFaParser.java:111)
at
org.semarglproject.rdf4j.rdf.rdfa.RDF4JRDFaParser.parse(RDF4JRDFaParser.java:95)
at
org.apache.any23.extractor.rdf.BaseRDFExtractor.run(BaseRDFExtractor.java:158)
```
My solution to this problem was simply to sanitize all attribute names.
mvn clean test -> all tests pass
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/HansBrende/any23 ANY23-350
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/any23/pull/87.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #87
----
commit c3abfe1c0cc51dbdd0404b313a2691ab62b33f78
Author: Hans <firedrake93@...>
Date: 2018-06-27T22:19:53Z
ANY23-350 fixed RDFParseException caused by bad attribute names/values in
malformed HTML
----
---