XSL-Übersicht / xsl:choose

xsl:choose

xsl:choose

xsl:choose erlaubt eine erweiterte, mehrstufige Fallunterscheidung nach dem Konzept "if/then/elseif/then/else". Dabei gibt es einige Besonderheiten zu beachten.

Mit der xsl:choose-Anweisung ist es möglich, erweiterte Fallunterscheidungen (im Sinn von if - elseif - else) zu definieren. xsl:choose arbeitet dabei mit when und xsl:otherwise. Ein xsl:choose muss mindestens ein when aufweisen. Sie können beliebig viele when-Tests implementieren. xsl:otherwise darf höchstens einmal deklariert werden, und zwar am Schluss.

Im Transformationsprozess werden nacheinander die implementierten when-Tests durchgeführt. Ist einer dieser Tests positiv, dann wird der Wert weiterverwendet, der diesem Fall zugeordnet ist; eventuell nachfolgende Fälle werden dann nicht mehr betrachtet. Trifft kein when-Test zu, dann kommt der "else"-Fall (xsl:otherwise) zum Tragen.

pic/choose.png


<xsl:variable name="vPerson" select="/Orte/Ort[2]/Mensch[3]"/>
<xsl:choose>
  <xsl:when test="$vPerson/Gehalt &gt;= 1000">reich</xsl:when>
  <xsl:when test="$vPerson/Gehalt &lt; 100">arm</xsl:when>
  <xsl:otherwise>wohlhabend</xsl:otherwise>
</xsl:choose>

Da der betreffende Mensch 876,54 Euro verdient, ist das Ergebnis dieser Unterscheidung:


<erg>wohlhabend</erg>

Eine einfache Fallprüfung bietet .

Ab können Sie die Logik auch mit erweiterter Syntax implementieren:


<xsl:value-of 
     select="if ($vPerson/Gehalt &gt;= 1000) 
             then ('reich') 
             else if ($vPerson/Gehalt &lt; 100) 
             then ('arm') 
             else ('wohlhabend') "/>

wg / 5. 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/choose.html