如何嵌套/何时陈述?

时间:2013-08-20 14:14:39

标签: xml xslt

我试图用嵌套的if语句测试一些值,但它似乎不起作用。第一个块时工作正常,但是当它遇到其他情况并进入test = $ country时,它会中断。文字“外面的时间和国家是......”工作正常。问题是最后两段没有打印出来。我不确定这是否与我嵌套when语句的方式有关,因为我是XSLT的新手。

国家/地区是指我将网站的区域设置更改为US OR GB。

<xsl:choose>
<xsl:when test="target = 'FX'"> <!-- Normal page -->
    <xsl:choose>
        <xsl:when test="$country = 'US'">
            <p>Inside FX US. Country is <xsl:value-of select="$country" /></p>
        </xsl:when>
        <xsl:otherwise>
            <p>Inside FX GB. Country is <xsl:value-of select="$country" /></p>
        </xsl:otherwise>
    </xsl:choose>
</xsl:when>
<xsl:otherwise> <!-- Graph page -->

<p>Outside when and country is <xsl:value-of select="$country" /></p>
    <xsl:when test="$country = 'US'">
        <p>Inside LPBM US. Country is <xsl:value-of select="$country" /></p>
    </xsl:when>
    <xsl:otherwise>
        <p>Inside LPBM GB. Country is <xsl:value-of select="$country" /></p>
    </xsl:otherwise>
    </xsl:otherwise>
</xsl:choose>

1 个答案:

答案 0 :(得分:1)

您的上一个区块周围没有打开和关闭<xsl:choose>块。尝试添加它们,看看你是否得到了预期的结果。

您的XSLT应如下所示:

<xsl:choose>
<xsl:when test="target = 'FX'"> <!-- Normal page -->
    <xsl:choose>
        <xsl:when test="$country = 'US'">
            <p>Inside FX US. Country is <xsl:value-of select="$country" /></p>
        </xsl:when>
        <xsl:otherwise>
            <p>Inside FX GB. Country is <xsl:value-of select="$country" /></p>
        </xsl:otherwise>
    </xsl:choose>
</xsl:when>
<xsl:otherwise> <!-- Graph page -->

<p>Outside when and country is <xsl:value-of select="$country" /></p>
    <xsl:choose> <!-- Added this line -->
        <xsl:when test="$country = 'US'">
            <p>Inside LPBM US. Country is <xsl:value-of select="$country" /></p>
        </xsl:when>
        <xsl:otherwise>
            <p>Inside LPBM GB. Country is <xsl:value-of select="$country" /></p>
        </xsl:otherwise>
    </xsl:choose> <!-- Added this line -->
    </xsl:otherwise>
</xsl:choose>