Subject: RE: tail recursion and NaN
From: "Susan Campbell" <SCampbell@xxxxxxxxxxxxxx>
Date: Fri, 7 May 2004 08:59:19 -0400
|
Thanks for the help. I later learned I also had to test for a dollar sign as well as empty cells. This is what I'm using. It works, but there may be a more compact/elegant way to do it.
sc
<xsl:template name="total-value">
<xsl:param name="price"/>
<xsl:param name="result" select="0"/>
<xsl:param name="nodollarsign" select="translate($price,'$','')"/>
<xsl:choose>
<xsl:when test="$price and number($price) = number($price)">
<xsl:call-template name="total-value">
<xsl:with-param name="price" select="$price[position() > 1]"/>
<xsl:with-param name="result" select="$result + $price"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$nodollarsign">
<xsl:call-template name="total-value">
<xsl:with-param name="price" select="$price[position() > 1]"/>
<xsl:with-param name="result" select="$result + $nodollarsign"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$price and number($price) != number($price)">
<xsl:call-template name="total-value">
<xsl:with-param name="price" select="$price[position() > 1]"/>
<xsl:with-param name="result" select="$result"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise><xsl:value-of select="$result"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
|