xsl:switch
Experimental: proposed new XSLT 4.0 instruction. Used to choose one of a number of alternative outputs, based on the value of a supplied expression.
Category: instruction
Content: (
xsl:when+
, xsl:otherwise?
, xsl:fallback*
)
Permitted parent elements:
any XSLT element whose content model is
sequence-constructor; any literal result element
Attributes
|
| Computes an atomic value that is compared with the
values in the |
Saxon availability
Available in the XSLT 4.0 proposal. Requires Saxon-PE or Saxon-EE. Implemented experimentally since Saxon 11. Available for all platforms.
Notes on the Saxon implementation
Available from Saxon 11; requires syntax extensions to be enabled.
Details
The select
attribute contains an expression which must deliver
a single atomic value (it is atomized if necessary). This value is compared with
the values of the test
conditions in each of the contained xsl:when elements in turn until the first match is found. If a
match is found, that xsl:when
element is evaluated; if no match is found, the
xsl:otherwise element is evaluated;
if there is no xsl:otherwise
element, the xsl:switch
instruction
returns an empty sequence.
Unlike xsl:choose, the test condition in the
xsl:when
element is an expression that can evaluate to any sequence of atomic
values. The comparison is done using the "=" operator, so the test succeeds if any of the
values matches.
For more information, see Conditional instructions.
Examples
<xsl:switch select="@cat"> <xsl:when test="'F'">Fiction</xsl:when> <xsl:when test="'C'">Crime</xsl:when> <xsl:when test="'R', 'L'" select="my:f(@cat)"/> <xsl:otherwise>General</xsl:otherwise> </xsl:switch>