XML | XML-Schema | XPath | XSL-T | XSL-FO | XQuery | XProc | SVG |
XPath / XPath 3.1: Array / XPath: array:for-each
![]() |
![]() |
➪ 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:for-each ermöglicht den flexiblen Einsatz anonymer Funktionen, um Arrays zu modifizieren.
Die Variable "vforeach" nimmt das ursprünglich definierte "varray" mit den Inhalten ['Hugo', 'Lotte', 'Theo'] unter die Lupe. Wenn der jeweilige Einzelwert $v einem Pattern 'Lotte' entspricht, dann soll der Inhalt mit fn:upper-case in Großbuchstaben verwandelt werden, sonst mit fn:lower-case in Kleinbuchstaben.
<xsl:variable name="vforeach"
select="array:for-each($varray,
function($v){ if (fn:matches($v, 'Lotte') )
then ( fn:upper-case($v) )
else ( fn:lower-case($v) ) })"/>
Der Aufruf von "vforeach" erfolgt wie gehabt:
<xsl:template match="/">
<root>
<xsl:for-each select="1 to array:size($vforeach)">
<xsl:variable name="vpos" select="fn:position()"/>
<wert nr="{$vpos}">
<xsl:value-of select="array:get($vforeach, $vpos)"/>
</wert>
</xsl:for-each>
</root>
</xsl:template>
... und ruft dieses Resultat hervor:
<root>
<wert nr="1">hugo</wert>
<wert nr="2">LOTTE</wert>
<wert nr="3">theo</wert>
</root>
wg / 22. April 2021
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