2009-07-28 65 views
1

當有多個命中計數($ mynodeset) 時,我有一堆節點集想要返回「1」而不是「真」更緊湊/更智能的方式來在XSLT 1.1中做到這一點?從XSL節點集的count()獲取值0或1

<xsl:variable name="x5" select="count($mynodeset) != 0"/> 
    <xsl:variable name="z5"> 
    <xsl:choose> 
     <xsl:when test="x5 = 'true'">1</xsl:when> 
     <xsl:otherwise>0</xsl:otherwise> 
    </xsl:choose> 
    </xsl:variable> 
+0

下一次你需要它:這是'的'或者甚至是'',但是''應該被避免。並非所有評估爲「真」的東西都被轉換爲字符串「真」。 – Tomalak 2009-07-28 13:30:15

回答

4

只需使用功能number(),它轉換一個布爾值1或0

4

不能使用number功能?

<xsl:variable name="x5" select="number(count($mynodeset) != 0)"/> 

我真的不知道XSLT,但這似乎根據很簡單:

XPath number function definition(XPath函數由XSLT 1.1 expressions使用)

+0

您的參考是XPath 1.0。我不確定XSLT 1.1是如何進入圖片的,但爲了以防萬一 - 不要使用它,這是一個未完成和死亡的標準。 – 2009-07-28 19:59:09

+0

不好意思,但XPath專門用於定義XSLT 1.1表達式。由於這個和其他原因,「死」有點強。 – 2009-07-29 11:58:01