Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Call template based function recursively

File: Data.xml <?xml version="1.0"?> <numbers>   <x>4</x>   <y>3.2</y>   <z>11</z> </numbers> File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="1.0">   <xsl:output method="text" />   <xsl:variable name="iterations" select="8" />   <xsl:template name="myFunction">     <xsl:param name="i">1</xsl:param>     <xsl:param name="myValue">0</xsl:param>     <xsl:choose>       <xsl:when test="$i &lt;= $iterations">         <xsl:call-template name="myFunction">           <xsl:with-param name="i" select="$i + 4" />           <xsl:with-param name="myValue"             select="$myValue + (4 div $i)" />         </xsl:call-template>       </xsl:when>       <xsl:otherwise>         <xsl:value-of select="$myValue" />       </xsl:otherwise>     </xsl:choose>   </xsl:template>   <xsl:template match="/">     <xsl:call-template name="myFunction" />   </xsl:template> </xsl:stylesheet> Output: 4.8