equal
deleted
inserted
replaced
|
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 |