xml - 多个 xsl :choose within a single xsl:when

标签 xml xslt

如果我正在测试几个不同的定义参数,我可以调用多个 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/

相关文章:

xml - XSLT 转换日期格式

XSLT 将两个兄弟元素内的元素分组

html - 在 XML 中使用 CSS 和 XSL

java - XML 解析器中出现此错误的原因是什么?

iphone - 使用 NSXMLParser 解析时,它是下载整个 .xml 然后解析,还是进行流式解析?

xml - 将 XML 加载到 PIG : Error 2998

xml - xsl :fo retrieve-marker not valid child

xml - 用于标识后面没有内容的最后一个元素的表达式

android - 如何使用相应的 XML 文件创建 Activity ,只需点击一个按钮

xml - 如何提取一个值并在将来的 xpath 查询中使用它?