Fonction position() |
Renvoie un nombre égal à la position contextuelle du contexte actuel.
Entrées
Aucune.
Sortie
Un nombre égal à la position du nœud actuel du contexte d'évaluation.
Définie dans
XPath section 4.1, Fonctions Ensemble de nœuds.
Exemples
L'exemple suivant utilise la fonction position() pour déterminer la couleur d'arrière-plan des lignes d'une table. Le cycle complet des couleurs d'arrière-plan passe par les options white, darkgray et lightgreen. 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 suivante a permis de générer le document XML :
    <?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>
            <table border="1">
              <xsl:for-each select="/list/listitem">
                <xsl:variable name="background-color">
                  <xsl:choose>
                    <xsl:when test="position() mod 3 = 1">white</xsl:when>
                    <xsl:when test="position() mod 3 = 2">darkgray</xsl:when>
                    <xsl:otherwise>lightgreen</xsl:otherwise>
                  </xsl:choose>
                </xsl:variable>
                <tr bgcolor="{$background-color}">
                  <td>
                    <b><xsl:value-of select="."/></b>
                  </td>
                </tr>
              </xsl:for-each>
            </table>
          </body>
        </html>
      </xsl:template>

    </xsl:stylesheet>
Les résultats suivants ont été générés par la feuille de style :
    <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>
    <table border="1">
    <tr bgcolor="white">
    <td><b>A Love Supreme</b></td>
    </tr>
    <tr bgcolor="darkgray">
    <td><b>Beat Crazy</b></td>
    </tr>
    <tr bgcolor="lightgreen">
    <td><b>Here Come the Warm Jets</b></td>
    </tr>
    <tr bgcolor="white">
    <td><b>Kind of Blue</b></td>
    </tr>
    <tr bgcolor="darkgray">
    <td><b>London Calling</b></td>
    </tr>
    <tr bgcolor="lightgreen">
    <td><b>Remain in Light</b></td>
    </tr>
    <tr bgcolor="white">
    <td><b>The Joshua Tree</b></td>
    </tr>
    <tr bgcolor="darkgray">
    <td><b>The Indestructible Beat of Soweto</b></td>
    </tr>
    </table>
    </body>
    </html>
Une fois affiché, le fichier HTML ressemble à la Figure C-8. Fichier HTML affichant des éléments ayant différentes couleurs d'arrière-plan