This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: sum of the evaluated values
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 22 Nov 2001 02:43:39 -0800 (PST)
- Subject: [xsl] Re: sum of the evaluated values
- Reply-to: xsl-list at lists dot mulberrytech dot com
Or you could even implement "+" on your time type:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:func-transform="f:func-transform"
exclude-result-prefixes="xsl func-transform"
>
<xsl:import href="transform-and-sum.xsl"/>
<xsl:output method="text"/>
<func-transform:func-transform/>
<xsl:template match="/">
<xsl:variable name="sumSeconds">
<xsl:call-template name="transform-and-sum">
<xsl:with-param name="pFuncTransform"
select="document('')/*/func-transform:*[1]"/>
<xsl:with-param name="pList" select="/*/*/@time"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of
select="concat(floor($sumSeconds div 60),
':',
$sumSeconds mod 60
)"/>
</xsl:template>
<xsl:template match="func-transform:*">
<xsl:param name="arg" select="0"/>
<xsl:value-of select="substring-before($arg, ':') * 60
+ substring-after($arg, ':')"/>
</xsl:template>
</xsl:stylesheet>
which when applied on the following xml document:
<events>
<event type="1" time="3:15"/>
<event type="0" time="2:28"/>
<event type="1" time="4:22"/>
<event type="1" time="5:11"/>
</events>
Gives the following result:
15:16
Cheers,
Dimitre Novatchev.
__________________________________________________
Do You Yahoo!?
Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list