当我这样做时:
<xsl:variable name="t">
<xsl:choose>
<xsl:when test="1=1">
<xsl:value-of select="1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
是名为t
字符串或数字?
如果是字符串并不意味着我可以简单地说:
<xsl:variable name="t">
<xsl:choose>
<xsl:when test="1=1">1</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
答案 0 :(得分:2)
使用XSLT 1.0,变量的类型在两种情况下都是包含文本节点的结果树片段。
答案 1 :(得分:1)
XSLT 1.0没有强类型,如XSLT 2.0中所示。
在XSLT 1.0中,具有非空主体的变量的类型为RTF(结果树片段)。
在您的特定情况下,变量是一个RTF,其中包含一个文本节点。变量的字符串值(在两种情况下)碰巧都可以作为数字转换,并且这可以用于引用具有数字参数的XPath运算符的变量(并且引用将被number($t)
替换不会是NaN
)。