<integer>1</integer>

 <real>1</real>

 <integer>2</integer>

 <real>2</real>

 <integer>3</integer>

 <real>3.5</real>

</numbers>

Листинг 3.14. Преобразование:

<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>&#xA; Integers:&#xA;</xsl:text>

   <xsl:value-of select='$integers'/>

   <xsl:text>&#xA;Reals:&#xA;</xsl:text>

   <xsl:value-of select='$reals'/>

   <xsl:text>&#xA;Reals minus integers:&#xA;</xsl:text>

   <xsl:value-of select='$reals - $integers'/>

   <xsl:text>&#xA;</xsl:text>

  </result>

 </xsl:template>

</xsl:stylesheet>

Листинг 3.15. Результат

<result>

Integers:

123

Reals:

123.5

Reals minus integers:

0.5

</result>

Таблица преобразования типов

Для удобства использования все взаимные преобразования типов сведены в одну таблицу (табл. 3.2).

Таблица 3.2. Взаимные преобразования типов данных XSLT

Преобразовываемый тип
Целевой тип boolean (булевое значение) number (число) string (строка) node-set (множество узлов) tree (дерево)
boolean (булевое значение)  false NaN → false другое → true пустая → false непустая → true пустое → false другое → true всегда true
number (число) false0 true1 разбирается, как число в десятичном формате мн-во → строка → число дерево → строка → число
string (строка) false → 'false' true → 'true' десятичная запись числа строковое значение первого узла в порядке просмотра строковое сложение всех текстовых узлов дерева
node-set (множество узлов) нет нет нет нет
Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату