<integer>1</integer>
<real>1</real>
<integer>2</integer>
<real>2</real>
<integer>3</integer>
<real>3.5</real>
</numbers>
<xsl:stylesheet
version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:variable name='integers'>
<integers><xsl:copy-of select='/numbers/integer'/></integers>
</xsl:variable>
<xsl:variable name='reals'>
<reals><xsl:copy-of select='/numbers/real'/></reals>
</xsl:variable>
<xsl:template match='/'>
<result>
<xsl:text>
 Integers:
</xsl:text>
<xsl:value-of select='$integers'/>
<xsl:text>
Reals:
</xsl:text>
<xsl:value-of select='$reals'/>
<xsl:text>
Reals minus integers:
</xsl:text>
<xsl:value-of select='$reals - $integers'/>
<xsl:text>
</xsl:text>
</result>
</xsl:template>
</xsl:stylesheet>
<result>
Integers:
123
Reals:
123.5
Reals minus integers:
0.5
</result>
Таблица преобразования типов
Для удобства использования все взаимные преобразования типов сведены в одну таблицу (табл. 3.2).
Преобразовываемый тип | |||||
---|---|---|---|---|---|
Целевой тип | boolean (булевое значение) | number (число) | string (строка) | node-set (множество узлов) | tree (дерево) |
boolean (булевое значение) | 0 → false NaN → false другое → true | пустая → false непустая → true | пустое → false другое → true | всегда true | |
number (число) | false → 0 true → 1 | разбирается, как число в десятичном формате | мн-во → строка → число | дерево → строка → число | |
string (строка) | false → 'false' true → 'true' | десятичная запись числа | строковое значение первого узла в порядке просмотра | строковое сложение всех текстовых узлов дерева | |
node-set (множество узлов) | нет | нет | нет | нет |