summaryrefslogtreecommitdiff
path: root/ishtar_common/utils_secretary.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/utils_secretary.py')
-rw-r--r--ishtar_common/utils_secretary.py11
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)