last
Gibt die Anzahl der Datenelemente innerhalb der gerade verarbeiteten Sequenz von Datenelementen zurück. Beachten Sie, dass die Sequenz der Datenelemente durch den aktuellen Mapping-Kontext bestimmt wird, wie im Beispiel unten beschrieben.
Sprachen
XQuery, XSLT 2.0, XSLT 3.0..
Beispiel
Angenommen, Sie haben die folgende XML-Quelldatei:
<Articles> |
Es sollen Daten in eine XML-Datei mit einem anderen Schema kopiert werden. Außerdem muss die Anzahl aller Datenelemente in der XML-Zieldatei gespeichert werden. Dies lässt sich mit einem Mapping wie dem unten gezeigten, ermitteln:
Im Beispiel unten gibt die Funktion last die Position des letzten Node im aktuellen Parent-Kontext zurück und befüllt das Attribut count mit dem Wert 3.
<items count="3"> |
Beachten Sie, dass der Wert 3 die Position des letzen Datenelements (also die Anzahl aller Datenelemente) in dem durch die Verbindung zwischen Article und items erstellten Mapping-Kontext ist. Wäre diese Verbindung nicht vorhanden, würden dennoch Datenelemente in die Zielkomponente kopiert werden, doch würde die Funktion last fälschlicherweise den Wert 1 zurückgeben, da sie keinen Parent-Kontext hätte, über den sie iterieren kann. (Genauer gesagt, würde die Funktion den impliziten zwischen den Root-Elementen der beiden Komponenten erstellten Standardkontext verwenden, der eine Sequenz von 1- und nicht, wie erwartet 3 - Datenelementen erzeugt).
Im Allgemeinen empfiehlt es sich, anstelle der last-Funktion, die count-Funktion aus der core-Bibliothek zu verwenden, da die count-Funktion ein parent-context-Argument hat, mit Hilfe dessen Sie den Mapping-Kontext explizit ändern können.