mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
Fix #3106 (Mobi book will not convert to ePub)
This commit is contained in:
parent
e7bbd3f14f
commit
3219cb3aa5
@ -795,14 +795,18 @@ class Manifest(object):
|
|||||||
def first_pass(data):
|
def first_pass(data):
|
||||||
try:
|
try:
|
||||||
data = etree.fromstring(data)
|
data = etree.fromstring(data)
|
||||||
except etree.XMLSyntaxError:
|
except etree.XMLSyntaxError, err:
|
||||||
repl = lambda m: ENTITYDEFS.get(m.group(1), m.group(0))
|
repl = lambda m: ENTITYDEFS.get(m.group(1), m.group(0))
|
||||||
data = ENTITY_RE.sub(repl, data)
|
data = ENTITY_RE.sub(repl, data)
|
||||||
try:
|
try:
|
||||||
data = etree.fromstring(data)
|
data = etree.fromstring(data)
|
||||||
except etree.XMLSyntaxError:
|
except etree.XMLSyntaxError, err:
|
||||||
self.oeb.logger.warn('Parsing file %r as HTML' % self.href)
|
self.oeb.logger.warn('Parsing file %r as HTML' % self.href)
|
||||||
data = html.fromstring(data)
|
if err.args and err.args[0].startswith('Excessive depth'):
|
||||||
|
from lxml.html import soupparser
|
||||||
|
data = soupparser.fromstring(data)
|
||||||
|
else:
|
||||||
|
data = html.fromstring(data)
|
||||||
data.attrib.pop('xmlns', None)
|
data.attrib.pop('xmlns', None)
|
||||||
for elem in data.iter(tag=etree.Comment):
|
for elem in data.iter(tag=etree.Comment):
|
||||||
if elem.text:
|
if elem.text:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user