fn:remove

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 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: Funktionen für Sequenzen

Herkunft: XPath 2.0

Rückgabewert: Eine Sequenz; die Kopie der Eingabesequenz aus der das durch die übergebene Positionsangabe bezeichnete Item entfernt wurde.

Aufruf/Argumente:

fn:remove($eingabesequenz?, $indexangabe)

$eingabesequenz:
Eine Sequenz aus einer beliebigen Anzahl von Items beliebigen Typs, die kopiert und aus der für die Ausgabesequenz das bezeich­nete Item entfernt werden soll. Die Eingabesequenz darf leer sein.

$indexangabe:
Obligatorisch. Eine Ganzzahl xs:integer, die die Indexpo­sition desjenigen Items der Eingabesequenz bezeichnet, das von der Funktion entfernt werden soll. Ist der übergebene Wert kleiner oder gleich 1 oder aber größer als die Zahl der Items in der Eingabesequenz, so wird die Eingabese­quenz unverändert zurückgegeben.

Verwendungszweck:

Die Funktion fn:remove() kopiert eine Eingabese­quenz und gibt sie zurück, nachdem ein durch die übergebene Indexangabe bezeichnetes Item aus ihr entfernt wurde. Wird der Funktion die leere Sequenz übergeben, so gibt sie die leere Sequenz zurück.

Als Indexangabe für das zu entfernende Item akzeptiert die Funktion beliebige (prinzipiell also auch unsinnige) Ganzzahlen xs:integer. Es muss daher an der übergebenen Indexposition nicht zwangsläufig auch ein Item existieren. Eine Fehlermeldung erfolgt auf Grund eines unbrauchbaren Indexargumentes nicht.

Ist in der Eingabesequenz an der angegebenen Indexposition ein Item vorhan­den, so wird es entfernt. Ist dies nicht der Fall, weil die übergebene Positions­angabe kleiner 1 ist oder höher als die Länge der Eingabesequenz, so wird die Eingabesequenz unverändert kopiert und zurückgegeben.

Beispiele:

Beispiel 1 – Entfernen eines Items aus einer Sequenz:

fn:remove(('a', 'b', 'c', 'd', 'e'), 3)

ergibt ('a', 'b', 'd', 'e'). Das dritte Item 'c' wird aus der Eingabesequenz entfernt, die verblei­benden Items werden als Ausgabesequenz zurückgegeben.

Beispiel 2 – Übergabe einer zu hohen Indexangabe:

fn:remove(('a', 'b', 'c', 'd'), 5)

ergibt ('a', 'b', 'c', 'd'). Da kein fünftes Item existiert, wird die Sequenz lediglich kopiert und unverändert zurückgegeben. Es wird keine Feh­ler­meldung ausgegeben.

Beispiel 3 – Übergabe von Index 0:

fn:remove(('a', 'b', 'c', 'd'), 0)

ergibt ('a', 'b', 'c', 'd'). Da die Indexangaben kleiner 1 sind, bleibt die Eingabesequenz wieder unverändert. Es erfolgt keine Feh­lermeldung.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:remove($target as item()*,
          $position as xs:integer) as item()*

   

<< 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