fn:last
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kaptel 5.)
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Kategorie: Kontextinformation innerhalb eines Nodesets
Herkunft: XPath 1.0
Rückgabewert: Eine Ganzzahl xs:integer; die Position des letzten Items in einer Sequenz. Einfach ausgedrückt, gibt fn:last() die Zahl der Items einer Sequenz zurück (in XPath 1.0 die Anzahl von Knoten eines Nodesets).
Aufruf/Argumente:
fn:last()
Keine Argumente
Verwendungszweck:
In XPath 2.0 wird fn:last() allgemein auf Sequenzen angewendet. In XPath 1.0 betrifft das Anwendungsgebiet, auf das fn:last() und ihre Schwesterfunktion fn:position() lediglich Nodesets, wie sie durch xsl:apply-templates oder xsl:for-each gebildet werden.
Die Funktion gibt eine Ganzzahl xs:integer zurück, die der Kontextgröße (context size) der aktuell verarbeiteten Sequenz entspricht. Dieser Wert kann gleich 0 sein. Stets gibt die Funktion also genau einen ganzzahligen Wert größer oder gleich 0 zurück. Ist das Kontextitem und damit die Kontextgröße jedoch undefiniert, so wird ein Laufzeitfehler gemeldet (err:XPDY0002).
Beispiel – Nummerierung aller Abbildungen eines Dokuments:
In einem Dokument sollen alle Elemente <abbildung> nummeriert werden:
<!-- Zusammenstellung der Node-Sequenz: -->
<xsl:apply-templates select="//abbildung">
...
<xsl:template match="abbildung">
<p>Abbildung <xsl:value-of select="fn:position()"/><xsl:text> </xsl:text>von <xsl:value-of select="fn:last()"/></p>
</xsl:template>
Dies ergibt beispielsweise folgende Ausgabe:
<p>Abbildung 3 von 8</p>
Mit fn:last() wird hier die Kontextgröße (Anzahl der Elemente) der Nodesequenz ermittelt, die Funktion fn:position() stellt die Position des augenblicklich verarbeiteten Elements fest. Die Instruktion xsl:text dient in diesem Beispiel dazu, ein Leerzeichen im Output zu erzwingen.
Funktionsdefinition:
XPath 1.0:
last()=> number
XPath 2.0:
fn:last() as xs:integer
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn