是字符串或数字的变量

时间:2011-06-24 09:25:45

标签: xml xslt

当我这样做时:

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

2 个答案:

答案 0 :(得分:2)

使用XSLT 1.0,变量的类型在两种情况下都是包含文本节点的结果树片段。

答案 1 :(得分:1)

XSLT 1.0没有强类型,如XSLT 2.0中所示。

在XSLT 1.0中,具有非空主体的变量的类型为RTF(结果树片段)。

在您的特定情况下,变量是一个RTF,其中包含一个文本节点。变量的字符串值(在两种情况下)碰巧都可以作为数字转换,并且这可以用于引用具有数字参数的XPath运算符的变量(并且引用将被number($t)替换不会是NaN)。