last()-Funktion |
Diese Funktion gibt die Position des letzten Knotens im aktuellen Kontext zurück. Sie eignet sich zur Definition von Vorlagen für das letzte Auftreten eines bestimmten Elements oder um zu testen, ob ein bestimmter Knoten der letzte in seiner Knotenmenge ist.
Eingaben
Keine
Ausgabe
Eine Zahl, die der Anzahl der Knoten im aktuellen Kontext entspricht. Angenommen, der aktuelle Kontext enthält 12 <li>-Knoten, so gibt die Funktion last() den Wert 12 zurück.
Definition
XPath-Abschnitt 4.1, Funktionen auf Knotenmengen
Beispiel
Im Beispiel wird die Funktion last() dazu verwendet, das letzte Element in einer Liste auf besondere Weise zu behandeln. 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>
Hier das Stylesheet, das die besondere Behandlung des letzten Listenelements (<listitem>) definiert:
    <?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>
Hier das Ergebnis, wenn Sie das XML-Ausgangsdokument mit diesem Stylesheet transformieren:
    <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>
Wie das HTML-Dokument in einem Browser angezeigt wird, sehen Sie in Abbildung C-7. Generiertes HTML-Dokument