> i have xml:
> <event type="1" time="3:00">
> <event type="0" time="2:00">
> <event type="1" time="4:00">
> <event type="1" time="5:00">
> and i need sum of the minutes: number(substring-before(@time,':'))
> only where @type=1.
>
> How it can be done?
>
The only way to sum over a computed value in pure XSLT 1.0 is to write a
recursive named template.
Alternatives if you're prepared to use extensions:
(a) construct a result tree fragment holding the actual values you want to
sum, and then use the sum() function on the nodes in this RTF (this will
need the xx:node-set() extension
(b) use an extension function such as
saxon:sum(event/time, saxon:expression(substring-before(.,':'))
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|