diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/utils_secretary.py | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index d87201c6a..e8fae9e59 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -1,6 +1,8 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -from secretary import Renderer, parseString +from secretary import Renderer +from lxml import etree +from xml.dom.minidom import parseString  from xml.parsers.expat import ExpatError, ErrorString  from datetime import datetime @@ -151,7 +153,12 @@ class IshtarSecretaryRenderer(Renderer):              result = jinja_template.render(**kwargs) -            final_xml = parseString(result.encode("ascii", "xmlcharrefreplace")) +            # try to fix xml with mismatched tags +            parser = etree.XMLParser(recover=True) +            recovered_xml = etree.fromstring(result.encode("ascii", "xmlcharrefreplace"), parser) + +            final_xml = parseString(etree.tostring(recovered_xml)) +              if self.template_images:                  self.replace_images(final_xml) | 
