1.1 --- a/XSLTools/XSLOutput.py Tue Oct 04 23:37:42 2005 +0000
1.2 +++ b/XSLTools/XSLOutput.py Tue Oct 04 23:38:14 2005 +0000
1.3 @@ -35,16 +35,20 @@
1.4 A handler which can prepare output for an XMLTools2 template.
1.5 """
1.6
1.7 - def __init__(self, filenames, references=None, parameters=None):
1.8 + def __init__(self, filenames, references=None, parameters=None, expressions=None):
1.9
1.10 """
1.11 Initialise the handler with the 'filenames' of stylesheets producing the
1.12 final output, a 'references' dictionary indicating related stylesheets.
1.13 - Additional 'parameters' may also be specified as a dictionary.
1.14 + Additional 'parameters' may be specified as a dictionary whose values
1.15 + are converted to string values; additional 'expressions' may also be
1.16 + specified as a dictionary - such expressions are actually evaluated in
1.17 + stylesheet.
1.18 """
1.19
1.20 self.references = references or {}
1.21 self.parameters = parameters or {}
1.22 + self.expressions = expressions or {}
1.23
1.24 # Remember the stylesheet documents.
1.25
1.26 @@ -88,6 +92,7 @@
1.27 # Attempt to get the correctly formatted document.
1.28
1.29 if hasattr(stream, "fileno"):
1.30 + stream.flush()
1.31 fd = stream.fileno()
1.32 str_result = libxsltmod.xsltSaveResultToFd(fd, result, self.stylesheets[-1])
1.33 else:
1.34 @@ -129,7 +134,8 @@
1.35 parameters[name.encode("utf-8")] = ("document('%s')" % self._quote(reference)).encode("utf-8")
1.36 for name, parameter in self.parameters.items():
1.37 parameters[name.encode("utf-8")] = ("'%s'" % self._quote(parameter)).encode("utf-8")
1.38 - #print "**", repr(parameters)
1.39 + for name, parameter in self.expressions.items():
1.40 + parameters[name.encode("utf-8")] = self._quote(parameter).encode("utf-8")
1.41
1.42 last_result = document
1.43 for stylesheet in self.stylesheets: