last()- Returns a value equal to the context size : last « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<africa>
 <source>
  <title>CIA Factbook</title>
  <url>http://www.cia.gov/cia/publications/factbook/</url>
  <populations estimate="true" year="2002"/>
 </source>
 <nation>
  <name>Algeria</name>
  <capital>Algiers</capital>
  <population>32277942</population>
  <cc>dz</cc>
 </nation>
 <nation>
  <name>Burundi</name>
  <capital>Bujumbura</capital>
  <population>6373002</population>
  <cc>bi</cc>
 </nation>
 <nation>
  <name>Eritrea</name>
  <capital>Asmara</capital>
  <population>4465651</population>
  <cc>er</cc>
 </nation>
</africa>


File: Transform.xslt

<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" />

  <xsl:template match="africa">
    <xsl:text>The nations of Africa are </xsl:text>
    <xsl:apply-templates select="nation" />
  </xsl:template>

  <xsl:template match="nation">
    <xsl:value-of select="name" />
    <xsl:if test="position() != last()">,</xsl:if>
    <xsl:if test="position() mod 5 = 0">
      <xsl:text>&#10;</xsl:text>
    </xsl:if>
    <xsl:if test="position() = (last() - 1)">and</xsl:if>
    <xsl:if test="position() = last()">.</xsl:if>
  </xsl:template>

</xsl:stylesheet>

Output:

The nations of Africa are Algeria,Burundi,andEritrea.








5.58.last
5.58.1.last()- Returns a value equal to the context size
5.58.2.if test="not(position()=last())"
5.58.3.You can select the last element of given type
5.58.4.last() function is in template. The context is therefore a single chapter element.
5.58.5.last() function is in for-each element. The context is therefore all selected chapters.
5.58.6.last() returns a number equal to the context size from the expression evaluation context