diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index 0daf0d4e7a..e7dd071962 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -965,16 +965,22 @@ class Manifest(object): try: data = etree.fromstring(data, parser=parser) except etree.XMLSyntaxError: - self.oeb.logger.warn('Stripping comments and meta tags from %s'% + self.oeb.logger.warn('Stripping comments from %s'% self.href) data = re.compile(r'', re.DOTALL).sub('', data) - data = re.sub(r']+?>', '', data) data = data.replace( - "", - '') + "", + '') data = data.replace("", '') - data = etree.fromstring(data, parser=RECOVER_PARSER) + try: + data = etree.fromstring(data, + parser=RECOVER_PARSER) + except etree.XMLSyntaxError: + self.oeb.logger.warn('Stripping meta tags from %s'% + self.href) + data = re.sub(r']+?>', '', data) + data = etree.fromstring(data, parser=RECOVER_PARSER) elif namespace(data.tag) != XHTML_NS: # OEB_DOC_NS, but possibly others ns = namespace(data.tag)