Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


XPath: fold-right

Zusammenfassung:

Die XPath-Funktion fold-right verarbeitet alle Items einer Sequenz von rechts nach links.

XPath: fold-right

Die XPath-Funktion fold-right fordert drei Parameter ein: zwei Sequenzen, sowie eine Funktion, mit der das Ergebnis berechnet wird.

Der folgende Aufruf definiert zwei Sequenzen sowie deren Verkettung (Komma!) in einer Funktion.

  <xsl:template match="/" name="xsl:initial-template">
    <root>
      <xsl:for-each select="fn:fold-right(
                            ('A', 5 to 10), 
                            ('B', 15 to 20), 
                            function($a, $b){$a, $b})">
        <wert>
          <xsl:value-of select="."/>
        </wert>
      </xsl:for-each>
    </root>
  </xsl:template>

Das Ergebnis:

<root>
	<wert>A</wert>
	<wert>5</wert>
	<wert>6</wert>
	<wert>7</wert>
	<wert>8</wert>
	<wert>9</wert>
	<wert>10</wert>
	<wert>B</wert>
	<wert>15</wert>
	<wert>16</wert>
	<wert>17</wert>
	<wert>18</wert>
	<wert>19</wert>
	<wert>20</wert>
</root>

Das zweite Beispiel multipliziert die Einzelwerte der Reihe 1 * 2 * 3 * 6 miteinander:

  <xsl:template match="/" name="xsl:initial-template">
    <root>
      <xsl:for-each select="fn:fold-right(
                            (1 to 3), 
                            6, 
                            function($a, $b){$a * $b})">
        <wert>
          <xsl:value-of select="."/>
        </wert>
      </xsl:for-each>
    </root>
  </xsl:template>

... und kommt auf ein nachvollziehbares Ergebnis:

<root>
  <wert>36</wert>
</root>

Auch andere bewährte Funktionen können eingebunden werden, etwa concat:

  <xsl:template match="/" name="xsl:initial-template">
    <root>
      <xsl:for-each select="fn:fold-right(
                            1 to 5, 
                            'Sprachlos', 
                            fn:concat(?, ' | ', ?))">
        <wert>
          <xsl:value-of select="."/>
        </wert>
      </xsl:for-each>
    </root>
  </xsl:template>

Das erzielte Ergebnis sieht dann so aus:

<root>
	<wert>1 | 2 | 3 | 4 | 5 | Sprachlos</wert>
</root>

qrpic/foldright.jpg

wg / 4. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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