Simplifies ascii encoding of rendered xml.

This commit is contained in:
Christopher Ramírez 2016-04-12 11:59:58 -06:00
parent 59fa3617c3
commit eee5e43549

View file

@ -247,7 +247,6 @@ class Renderer(object):
self.escape_map[key] = r'\1{0}\4'.format(value) self.escape_map[key] = r'\1{0}\4'.format(value)
def _is_jinja_tag(self, tag): def _is_jinja_tag(self, tag):
""" """
Returns True is tag (str) is a valid jinja instruction tag. Returns True is tag (str) is a valid jinja instruction tag.
@ -536,13 +535,16 @@ class Renderer(object):
try: try:
self.template_images = dict() self.template_images = dict()
self._prepare_document_tags(xml_document) self._prepare_document_tags(xml_document)
template_string = self._unescape_entities(xml_document.toxml()) xml_source = xml_document.toxml()
jinja_template = self.environment.from_string(template_string) xml_source = xml_source.encode('ascii', 'xmlcharrefreplace')
jinja_template = self.environment.from_string(
self._unescape_entities(xml_source)
)
result = jinja_template.render(**kwargs) result = jinja_template.render(**kwargs)
result = self._encode_escape_chars(result) result = self._encode_escape_chars(result)
final_xml = parseString(result.encode('ascii', 'xmlcharrefreplace')) final_xml = parseString(result)
if self.template_images: if self.template_images:
self.replace_images(final_xml) self.replace_images(final_xml)