Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Last() function is in template The context is therefore a single chapter element

File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data>     <chapter>Chapter A</chapter>     <chapter>Chapter B</chapter>     <chapter>Chapter C</chapter>     <chapter>Chapter D</chapter> </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="//chapter">           <TR>             <TD>               <xsl:apply-templates select="."/>             </TD>           </TR>         </xsl:for-each>       </TABLE>     </xsl:template>     <xsl:template match="chapter">       <xsl:value-of select="."/>       <xsl:text>(last = </xsl:text>       <xsl:value-of select="last()"/>       <xsl:text>)</xsl:text>     </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><TABLE><TR><TD>Chapter A(last = 1)</TD></TR><TR><TD>Chapter B(last = 1)</TD></TR><TR><TD>Chapter C(last = 1)</TD></TR><TR><TD>Chapter D(last = 1)</TD></TR></TABLE>