xsl-list
[Top] [All Lists]

RE: tail recursion and NaN

2004-05-07 05:59:19
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() 
&gt; 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() 
&gt; 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() 
&gt; 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>


<Prev in Thread] Current Thread [Next in Thread>