如果我正在测试几个不同的定义参数,我可以调用多个 xsl:when
xsl:choose
内的声明陈述?所以如果我有:
<parameters>
<param id="1">
<key>Load</key>
<value>XML</value>
</param>
<param id="2">
<key>Input</key>
<value>Http</value>
</param>
<param id="3">
<key>Response</key>
<value>Y</value>
</param>
</parameters>
我可以调用三个不同的 <xsl:when>
用一个<xsl:choose>
检查因为我会有几个<param>
与不同<value>
稍后需要帮助调用不同的模板。
最佳答案
是的,当然可以。您还可以添加一个 xsl:otherwise
节点来处理所有其他情况:
<xsl:choose>
<xsl:when test="param/@id = '1'">
<xsl:text>XML</xsl:text>
</xsl:when>
<xsl:when test="param/@id = '2'">
<xsl:text>HTTP</xsl:text>
</xsl:when>
<xsl:when test="param/@id = '3'">
<xsl:text>Y</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Other format</xsl:text>
</xsl:otherwise>
</xsl:choose>
这类似于类 C 语言和 Java 中的 switch
语句,或 VB 中的 Select Case
。
当然,您可以检查任意 XPath 表达式,例如你也可以检查
<xsl:when test="param/key = 'Input'">
<!-- handle input -->
</xsl:when>
关于xml - 多个 xsl :choose within a single xsl:when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150801/