2009-07-28 64 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