2011-12-20 87 views
-1

我使用一些XSLT來呈現各種從XML片的元素,但只有在它們的屬性值的一個XSLT 1.0不工作布爾條件正常

<xsl:variable name="showInIndex" select="true()"/> 
<xsl:variable name="BoolFromSheet" select="@showInIndex"/> 

<xsl:when test="string($showInIndex) = string($BoolFromSheet)"> 
... 
</xsl:when>... 

我已經試過被設置爲真打印2個變量值,它們包含truefalse。所以沒有空值的問題。

我也嘗試用string(true())替換其中的一個,但那也沒有幫助。
我將它們轉換爲string()的原因是因爲我已經在各種示例中看到它。不知道它們是否有差異,或者沒有考慮到它們都是布爾值。

+1

@showInIndex不是一個布爾值 - 它是一個屬性節點。你沒有告訴我們該屬性包含什麼。您還沒有告訴我們問題是什麼,除了它「不能正常工作」。 – 2011-12-20 10:51:10

回答

0

屬性節點值始終是字符串。 XSLT處理器不會以任何方式解釋字符串內容。

<xsl:when test='@showInIndex="true"'/> 

您可能必須將大寫字母轉換爲小寫字符:translate(@showInIndex,"TRUE","true")