переменная типа строка или число - PullRequest
2 голосов
/ 24 июня 2011

Когда я делаю это:

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

2 голосов
/ 24 июня 2011

В XSLT 1.0 тип вашей переменной в обоих случаях является фрагментом дерева результатов, содержащим текстовый узел.

1 голос
/ 24 июня 2011

XSLT 1.0 не имеет строгой типизации, присутствующей в XSLT 2.0.

В XSLT 1.0 переменная с непустым телом имеет тип RTF (Result Tree Fragment).

В вашем конкретном случае переменная представляет собой RTF с одним текстовым узлом. Строковое значение переменной (в обоих случаях) может быть преобразовано как число, и это может быть использовано для ссылки на переменную с операторами XPath, которые ожидают числовой аргумент (и ссылка будет заменена на number($t), и это не будет быть NaN).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...