Fonction last() |
Renvoie la position du dernier nœud dans le contexte actuel. Cette fonction permet de définir des modèles pour la dernière occurrence d'un élément donné ou de tester si un nœud donné est le dernier de l'ensemble de nœuds auquel il appartient.
Entrées
Aucune.
Sortie
Un nombre égal au nombre de nœuds dans le contexte en cours. Par exemple, si le contexte en cours contient 12 nœuds <li>, la fonction last() renvoie 12.
Définie dans
XPath section 4.1, Fonctions Ensemble de nœuds.
Exemple
La fonction last() permet de traiter le dernier élément d'une liste de manière particulière. Le document XML utilisé est le suivant :
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
La feuille de style permettant de traiter le dernier élément <listitem> de la liste de manière différente est la suivante :
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:output method="html"/>

      <xsl:template match="/">
        <html>
          <head>
            <title>
              <xsl:value-of select="/list/title"/>
            </title>
          </head>
          <body>
            <h1>
              <xsl:value-of select="/list/title"/>
            </h1>
            <ul>
              <xsl:for-each select="/list/listitem">
                <xsl:choose>
                  <xsl:when test="position()=last()">
                    <li><b>Last, but not least: </b><xsl:value-of select="."/></li>
                  </xsl:when>
                  <xsl:otherwise>
                    <li><xsl:value-of select="."/></li>
                  </xsl:otherwise>
                </xsl:choose>
              </xsl:for-each>
            </ul>
          </body>
        </html>
      </xsl:template>

    </xsl:stylesheet>
Une fois le document XML transformé à l'aide de la feuille de style, les résultats sont les suivants :
    <html>
    <head>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>A few of my favorite albums</title>
    </head>
    <body>
    <h1>A few of my favorite albums</h1>
    <ul>
    <li>A Love Supreme</li>
    <li>Beat Crazy</li>
    <li>Here Come the Warm Jets</li>
    <li>Kind of Blue</li>
    <li>London Calling</li>
    <li>Remain in Light</li>
    <li>The Joshua Tree</li>
    <li>
    <b>Last, but not least: </b>The Indestructible Beat of Soweto</li>
    </ul>
    </body>
    </html>
Une fois affiché, le fichier HTML ressemble à la Figure C-7. Document HTML généré