Mega Code Archive

 
Categories / XML Tutorial / XSLT StyleSheet
 

Position() returns a value equal to the context position

File: Data.xml <chapter>   <title>"title 1" Excerpt</title>   <para>para1</para>   <figure>     <title>title 1</title>   </figure>   <para>para2</para>   <sect1>     <figure>       <title>"He Lights"</title>     </figure>     <para>line 1</para>     <sect2>       <figure>         <title>title 2</title>       </figure>     </sect2>   </sect1> </chapter> File: Transform.xslt <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="1.0">   <xsl:output method="xml" omit-xml-declaration="yes" indent="no" />      <xsl:template match="chapter">     <xsl:for-each select="descendant::figure/title">       <xsl:sort />       <xsl:if test="position() = 1">         First figure title in chapter:         <xsl:value-of select="." />       </xsl:if>       <xsl:if test="position() = last()">         Last figure title in chapter:         <xsl:value-of select="." />       </xsl:if>     </xsl:for-each>   </xsl:template>    </xsl:stylesheet> Output:         First figure title in chapter:         "He Lights"         Last figure title in chapter:         title 2