diff -r 39d78c530cbb -r 3ba6a2d26507 plcopen/XSLTModelQuery.py --- 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