This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Recursion Help with Summing Durations
- From: Seth Ladd <seth at brivo dot net>
- To: xsl-list at lists dot mulberrytech dot com
- Date: 29 Apr 2002 14:28:08 -0400
- Subject: [xsl] Recursion Help with Summing Durations
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello,
I am trying to use the EXSLT template add-duration. I have a node-set
of durations that I'd like to sum together. My named template is not
working, and I was hoping someone could give me some hints or tips on
where to go to make this recursion work properly.
My environment:
Java 1.3.1
Xalan2
Cocoon 2.0.2
I've tested that I'm getting the correct node-set by using count().
I've also hard-coded some values into add-duration to make sure it
works.
I've been scanning documentation all day, and coming up empty. I might
be getting tripped up with the difference between node-sets and RTFs,
but that's where my XSLT gets fuzzy. Any tips or suggestions would be
greatly appreciated!
Thanks so much,
Seth
My template:
<xsl:template name="total-durations">
<xsl:param name="durations"/>
<xsl:choose>
<xsl:when test="$durations">
<xsl:variable name="first" select="$durations[1]"/>
<xsl:variable name="rest">
<xsl:call-template name="total-durations">
<xsl:with-param name="durations"
select="$durations[position()!=1]"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="date:add-duration">
<xsl:with-param name="duration1" select="$first"/>
<xsl:with-param name="duration2" select="$rest"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>P0M</xsl:otherwise>
</xsl:choose>
</xsl:template>
I call it with this (while I am in the timecard element):
<xsl:call-template name="total-durations">
<xsl:with-param name="durations" select="shift/duration"/>
</xsl:call-template>
And my original document looks like:
<timecard>
<shift>
<duration>P13M</duration>
</shift>
<shift>
<duration>P43M</duration>
</shift>
</timecard>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list