position()-Funktion |
Diese Funktion gibt Zahl eine zurück, die der Kontextposition des aktuellen Kontexts entspricht.
Eingaben
Keine
Ausgabe
Eine Zahl, die der Position des aktuellen Knotens im Bewertungskontext entspricht.
Definition
XPath-Abschnitt 4.1, Funktionen auf Knotenmengen
Beispiele
Das folgende Beispiel verwendet die Funktion position(), um die Hintergrundfarbe der Zeilen einer Tabelle zu bestimmen. Die Hintergrundfarben durchschreiten die Optionen white, darkgray und lightgreen. Es wird das folgende XML-Dokument verwendet:
    <?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>
Zur Erzeugung des HTML-Dokuments wird das folgende Stylesheet verwendet:
    <?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>
Das Stylesheet erzeugt das folgende Ergebnis:
    <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>
Wie das HTML-Dokument in einem Browser angezeigt wird, sehen Sie in Abbildung C-8. HTML-Datei, die Elemente in verschiedenen Hintergrundfarben anzeigt