--- 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