plcopen/XSLTModelQuery.py
changeset 2627 3ba6a2d26507
parent 1953 5736d25bb393
child 3750 f62625418bff
--- a/plcopen/XSLTModelQuery.py	Tue Sep 24 11:55:59 2019 +0200
+++ b/plcopen/XSLTModelQuery.py	Fri Aug 09 12:07:33 2019 +0200
@@ -8,13 +8,14 @@
 from lxml import etree
 import util.paths as paths
 from plcopen.structures import StdBlckLibs
+from XSLTransform import XSLTransform
 
 ScriptDirectory = paths.AbsDir(__file__)
 
-
-class XSLTModelQuery(object):
+class XSLTModelQuery(XSLTransform):
     """ a class to handle XSLT queries on project and libs """
     def __init__(self, controller, xsltpath, ext=None):
+
         # arbitrary set debug to false, updated later
         self.debug = False
 
@@ -31,19 +32,12 @@
         if ext is not None:
             xsltext.extend(ext)
 
-        # parse and compile. "beremiz" arbitrary namespace for extensions
-        self.xslt = etree.XSLT(
-            etree.parse(
-                os.path.join(ScriptDirectory, xsltpath),
-                etree.XMLParser()),
-            extensions={("beremiz", name): call for name, call in xsltext})
-
+        XSLTransform.__init__(self,
+                           os.path.join(ScriptDirectory, xsltpath),
+                           xsltext)
     def _process_xslt(self, root, debug, **kwargs):
         self.debug = debug
-        res = self.xslt(root, **{k: etree.XSLT.strparam(v) for k, v in kwargs.iteritems()})
-        # print(self.xslt.error_log)
-        return res
-
+        return self.transform(root, **kwargs)
 
 # -------------------------------------------------------------------------------
 #           Helpers functions for translating list of arguments