XSLTransform.py
branchsvghmi
changeset 2752 a8c9b7f0a54a
child 2707 c26195654ae9
equal deleted inserted replaced
2751:eab6161e603d 2752:a8c9b7f0a54a
       
     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