last() as index : last « XSLT stylesheet « XML






last() as index


File: Data.xml


<wine grape="Chardonnay">
  <winery>shop 1</winery>
  <product>product 1</product>
  <year>1998</year>
  <desc>description</desc>
  <prices>
    <list>6.99</list>
    <discounted>5.99</discounted>
    <case>71.50</case>
  </prices>
</wine>
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="item[3]">
    ~~~~ Start of item element's template ~~~~ 1. This node: {
    <xsl:apply-templates />
    } 2. First node: {
    <xsl:value-of select="../item[1]" />
    } 3. Last node: {
    <xsl:value-of select="../item[last()]" />
    } 4. Preceding node: {
    <xsl:value-of select="preceding-sibling::item[1]" />
    } 5. Next node: {
    <xsl:value-of select="following-sibling::item[1]" />
    } 6. flavor attribute value of first node: {
    <xsl:value-of select="../item[1]/@flavor" />
    } ~~~~ End of item element's template ~~~~
  </xsl:template>

  <xsl:template match="item" />

</xsl:stylesheet>

Output:


  shop 1
  product 1
  1998
  description
  
    6.99
    5.99
    71.50
  

 








Related examples in the same category

1.Output a comma if it's not the last one in the node
2.use last() function to get the context size