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 <= $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
|