我试图用嵌套的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>
答案 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>