You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
749 B

import os.path
from lxml import etree
from jinja2 import Environment, FileSystemLoader
from . import filters
def render_xml(template_name, **nfe):
path = os.path.dirname(__file__)
env = Environment(
loader=FileSystemLoader(path), extensions=['jinja2.ext.with_'])
env.filters["normalize"] = filters.normalize_str
env.filters["format_percent"] = filters.format_percent
env.filters["format_datetime"] = filters.format_datetime
env.filters["format_date"] = filters.format_date
template = env.get_template(template_name)
xml = template.render(**nfe)
xml = xml.replace('&', '&')
parser = etree.XMLParser(remove_blank_text=True, remove_comments=True)
return etree.fromstring(xml, parser=parser)