Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

If you want to pass a variable, you have to define this variable with xsl

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data>     <number>1</number>     <number>3</number>     <number>4</number>     <number>17</number>     <number>8</number> </data> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet       version="1.0"       xmlns:xsl="http://www.w3.org/1999/XSL/Transform">     <xsl:template match="/">       <TABLE>         <xsl:for-each select="//number">           <TR>             <td>               <xsl:choose>                 <xsl:when test="text() mod 2">                   <xsl:apply-templates select=".">                     <xsl:with-param name="type">odd</xsl:with-param>                   </xsl:apply-templates>                 </xsl:when>                 <xsl:otherwise>                   <xsl:apply-templates select="."/>                 </xsl:otherwise>               </xsl:choose>             </TH>           </TR>         </xsl:for-each>       </TABLE>     </xsl:template>     <xsl:template match="number">       <xsl:param name="type">even</xsl:param>       <xsl:value-of select="."/>       <xsl:text> (</xsl:text>       <xsl:value-of select="$type"/>       <xsl:text>)</xsl:text>     </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><TABLE><TR><td>1 (odd)</TH></TR><TR><td>3 (odd)</TH></TR><TR><td>4 (even)</TH></TR><TR><td>17 (odd)</TH></TR><TR><td>8 (even)</TH></TR></TABLE>