XSLTransform.py
changeset 2627 3ba6a2d26507
child 2707 c26195654ae9
equal deleted inserted replaced
2626:39d78c530cbb 2627:3ba6a2d26507
       
     1 #!/usr/bin/env python
       
     2 # -*- coding: utf-8 -*-
       
     3 # This file is part of Beremiz.
       
     4 # See COPYING file for copyrights details.
       
     5 
       
     6 from __future__ import absolute_import
       
     7 from lxml import etree
       
     8 
       
     9 class XSLTransform(object):
       
    10     """ a class to handle XSLT queries on project and libs """
       
    11     def __init__(self, xsltpath, xsltext):
       
    12 
       
    13         # parse and compile. "beremiz" arbitrary namespace for extensions
       
    14         self.xslt = etree.XSLT(
       
    15             etree.parse(
       
    16                 xsltpath,
       
    17                 etree.XMLParser()),
       
    18             extensions={("beremiz", name): call for name, call in xsltext})
       
    19 
       
    20     def transform(self, root, **kwargs):
       
    21         res = self.xslt(root, **{k: etree.XSLT.strparam(v) for k, v in kwargs.iteritems()})
       
    22         # print(self.xslt.error_log)
       
    23         return res
       
    24 
       
    25