mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-02-26 04:03:31 +01:00
Work around for error when parsing malformed documents containing annotation-xml tags
This commit is contained in:
parent
fe84fd3519
commit
a82ff8b749
1 changed files with 11 additions and 4 deletions
|
|
@ -155,10 +155,17 @@ def documentEncoding(self):
|
|||
def isHTMLIntegrationPoint(self, element):
|
||||
if (element.name == "annotation-xml" and
|
||||
element.namespace == namespaces["mathml"]):
|
||||
return ("encoding" in element.attributes and
|
||||
element.attributes["encoding"].translate(
|
||||
asciiUpper2Lower) in
|
||||
("text/html", "application/xhtml+xml"))
|
||||
try:
|
||||
return ("encoding" in element.attributes and
|
||||
element.attributes["encoding"].translate(
|
||||
asciiUpper2Lower) in
|
||||
("text/html", "application/xhtml+xml"))
|
||||
except TypeError:
|
||||
# This happens for some documents, for some reason
|
||||
# lxml refuses to store a unicode representation of the
|
||||
# encoding attribute.
|
||||
return element.attributes["encoding"].lower().decode('utf-8', 'replace') in (
|
||||
"text/html", "application/xhtml+xml")
|
||||
else:
|
||||
return (element.namespace, element.name) in htmlIntegrationPointElements
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue