XSL / Die XSLT - Struktur / XPath 3.1: Array / XPath: array:remove
![]() |
![]() |
➪ Ein Array ist ein neuer Datentyp in XDM 3.1 mit umfangreicher Funktionalität, der als ein Item einer Sequenz zu betrachten ist.
Die XPath-Funktion array:remove ist in der Lage, aus einem Array jenes Feld zu entfernen, das über den Positions-Parameter bestimmt wird.
Beispiel: Aus dem ursprünglich definierten "varray" mit den Inhalten ['Hugo', 'Lotte', 'Theo'] basteln Sie ein zweites Array "vremoved", das den Index an der zweiten Stelle ('Lotte') löscht.
<xsl:variable name="vremoved" select="array:remove($varray, 2)"/>
Bei der Schleife über das Rest-Array ...
<xsl:template match="/">
<root>
<xsl:for-each select="1 to array:size($vremoved)">
<xsl:variable name="vpos" select="fn:position()"/>
<wert nr="{$vpos}">
<xsl:value-of select="array:get($vremoved, $vpos)"/>
</wert>
</xsl:for-each>
</root>
</xsl:template>
bleiben nur noch Hugo und Theo übrig:
<root>
<wert nr="1">Hugo</wert>
<wert nr="2">Theo</wert>
</root>
Durch eine Sequenz von Löschpositionen können Sie auch mehrere Einzelwerte ansprechen, etwa so:
<xsl:variable name="vremoved"
select="array:remove($varray, 2 to 3)"/>
... übrig bliebe dann Hugo:
<root>
<wert nr="1">Hugo</wert>
</root>
... oder durch gezielte Einzelwerte:
<xsl:variable name="vremoved"
select="array:remove($varray, (1,3))"/>
Wenn die Felder an der Stelle 1 und 3 gelöscht werden, dann bleibt nur 'Lotte' übrig:
<root><wert nr="1">Lotte</wert></root>
wg / 31. Oktober 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de