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="\&quot;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

----


---

Reply via email to