This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Calculating column widths
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] Calculating column widths
- From: "Michael Kay" <mhkay at iclway dot co dot uk>
- Date: Wed, 16 May 2001 00:27:11 +0100
- Reply-To: xsl-list at lists dot mulberrytech dot com
> My question:
> how can I do this calculation in one parse?
> The sum() function requires a node-set
> and numeric values to function properly,
> and I have been unable to do the stripping
> and the calculation in one template.
You could do the summation "by hand" in a recursive template, rather than
using the sum() function, but I'm not sure I'd recommend this. It rather
depends what you're trying to achieve.
You can of course do a two-pass transformation using a result-tree-fragment
for the intermediate results and using RTF-to-nodeset conversion for the
second pass.
Alternatively, Saxon has the extension function saxon:sum(node-set,
expression) which allows you to sum over the result of an XPath expression
applied to the context node. This expression can also contain a call on a
saxon:function() defined in the stylesheet. (But you could strip off the
units part of your numbers using a standard expression based on translate(),
converting all alpha characters to spaces).
I'm not sure any of these is a real improvement on what you're currently
doing.
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list