C#.NET * C++ * JAVASCRIPT * PYTHON * DIVERSES
XML * XML-SCHEMA * XPATH * XSL * XSL-FO * SVG * XQUERY * XPROC * ANT



XSL / Die XSLT - Struktur / XPath 3.1: Array / XPath: array:for-each

XPath: array:for-each

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 / 31. Oktober 2020



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/xpath_array11.html