Subject: [xsl] Recursive sums in xslt 1.0 From: Daniel O'Donnell <daniel.odonnell@xxxxxxxx> Date: Sun, 13 Mar 2005 11:20:01 -0700 |
in xslt1 if you want to store an expression that is going to be re-evaluated you need to put it in a named template. Then you could call that so long as you replaced sum(..) with a recursive template that iterated over the nodes calculating the sum and calling your named templates.
The context is a financial xslt file that outputs itemised monthly reports from an unitemised year-to-date xml file. For each item in the output file, I need to do two tests: one for date and the other for some other feature (usually party [i.e. payer/payee]). This would be an example with no parameters or variables:
<xsl:variable name="actualelectricity"> <xsl:value-of select="sum(/statement/item[date >= 20050228 and party[contains('DEML')]]/amount)"/> </xsl:variable>
What I want to do is turn the two expressions in the test into independent variables so that I could do something like this:
<xsl:variable name="actualelectricity"> <xsl:value-of select="sum(/statement/item[$datetest and $electricitytest]/amount)"/> </xsl:variable>
Where
datetest = (date >= 20050228)
and
electricitytest = (party[contains('DEML')])
The reason for doing this is that it allows me to reuse the category tests (i.e. the party[contains()]-type tests) independently of the date tests: for year-to-date summaries, and for a miscellaneous class that consists of anything that is not identified by an explicit category test.
-- Daniel Paul O'Donnell, PhD Associate Professor of English University of Lethbridge Lethbridge AB T1K 3M4 Tel. (403) 329-2377 Fax. (403) 382-7191 E-mail <daniel.odonnell@xxxxxxxx> Home Page <http://people.uleth.ca/~daniel.odonnell/> The Digital Medievalist Project: <http://www.digitalmedievalist.org/>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] How Do I Generate A Set-D, Aron Bock | Thread | Re: [xsl] Recursive sums in xslt 1., David Carlisle |
RE: [xsl] How Do I Generate A Set-D, Aron Bock | Date | [xsl] Stylesheet from a stylesheet, Midsummer Sun |
Month |