XPath 3.0, XPath 2.0, XPath 1.0 / XPath-Funktionen / XPath: Sequenz-Funktionen / XPath: for-each

XPath: for-each

XPath: for-each

➪ Die XPath-Funktion for-each fordert zwei Parameter ein: a) ein oder mehrere Items als Sequenz, b) eine Funktion, die für jedes Item dieser Sequenz aufgerufen wird.

Verwendung findet die anonyme Funktion auch in der XPath-Funktion for-each, die zwei Parameter einfordert:

So generieren die Argumente


  <xsl:template match="/">
    <root>
      <xsl:for-each 
           select="fn:for-each(
                      (10 to 20)[. mod 2 = 1], 
                      function($p1){$p1*100})">
        <wert>
          <xsl:value-of select="."/>
        </wert>
      </xsl:for-each>
    </root>
  </xsl:template>

... dieses Ergebnis:


<root>
  <wert>1100</wert>
  <wert>1300</wert>
  <wert>1500</wert>
  <wert>1700</wert>
  <wert>1900</wert>
</root>

Dasselbe Ergebnis erhalten Sie beim Aufruf der for-each-Funktion in XQuery:


<root>
{
  for $x in fn:for-each(
            (10 to 20)[. mod 2 = 1], 
            function($p1){$p1*100})
  return 
    <wert>     
      {$x}
    </wert>
}
</root>

Grundsätzlich empfehlenswert ist die typsaubere Parameterübergabe sowie die Deklaration des Rückgabetyps der Funktion, in diesem Fall also xs:integer. Der Aufruf generiert dasselbe Ergebnis wie vorher.


<root>
{
  for $x in fn:for-each(
            (10 to 20)[. mod 2 = 1], 
            function($p1 as xs:integer) 
                    as xs:integer 
                    {$p1*100}
             )
  return 
    <wert>     
      {$x}
    </wert>
}
</root>

Siehe auch , .

wg / 12. April 2018



Fragen? Anmerkungen? Tips?

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/foreach.html