2013-08-20 83 views
1

我想用嵌套的if語句來測試一些值,但它似乎不起作用。第一次當塊工作正常,但當它碰到否則進入時,測試= $國家,它打破。文字「外部時間和國家是...」正常工作。問題是最後兩段沒有打印出來。我不確定這是否與嵌套when語句的方式有關,因爲我是XSLT新手。如何嵌套when/otherwise語句?

國家是當我更改網站的區域設置爲美國或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

請添加XML輸入和期望的輸出HTML。嵌套''很可能不是你最好的選擇。 – Tomalak

回答

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> 
+0

另外,我確信有更好的方法來做到這一點,但我現在沒有時間寫這個。我可能會回過頭來推薦一個更好的方法。 –