Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

Использование элемента

xsl:copy-of
полностью аналогично использованию элемента
xsl:value
– of за тем исключением, что
xsl:copy-of
при выводе значения выражения преобразует его к строке не во всех случаях. Поведение
xsl:copy-of
зависит от того, какой тип данных возвращает выражение.

□ Если результат вычисления имеет булевый, числовой или строковый тип, то

xsl:copy-of
выводит его в виде текстового узла. В этом случае поведение
xsl:copy-of
абсолютно не отличается от поведения элемента
xsl:value-of
.

□ Если результатом вычисления выражения является множество узлов (node-set), то

xsl:copy-of
копирует в выходящий документ все узлы в порядке просмотра документа вместе с их потомками.

□ Если результатом вычисления является результирующий фрагмент дерева, то он копируется в выходящий документ в неизмененном виде.

Рассмотрим пример.

Листинг 7.20. Входящий документ

<values>

 <boolean>false</boolean>

 <string>text</string>

 <number>3.14</number>

 <node-set>

<item>10</item>

<item>20</item>

<item>30</item>

 </node-set>

 <tree>

text

<root>

text

<branch>

text

<leaf/>

<leaf/>

</branch>

<leaf/>

</root>

 </tree>

</values>

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

<xsl:stylesheet

 version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/">

<xsl:variable name="boolean" select="values/boolean='true'"/>

<xsl:variable name="string" select="string(values/string)"/>

<xsl:variable name="number" select="number(values/number)"/>

<xsl:variable name="node-set" select="values/node-set/*"/>

<xsl:variable name="tree">

<xsl:copy-of select="values/tree/*"/>

</xsl:variable>

<xsl:text>&#10;Value-of boolean:</xsl:text>

<xsl:value-of select="$boolean"/>

<xsl:text>&#10;Copy-of boolean:</xsl:text>

<xsl:copy-of select="$boolean"/>

<xsl:text>&#10;Value-of string:</xsl:text>

<xsl:value-of select="$string"/>

<xsl:text>&#10;Copy-of string:</xsl:text>

<xsl:copy-of select="$string"/>

<xsl:text>&#10;Value-of number:</xsl:text>

<xsl:value-of select="$number"/>

<xsl:text>&#10;Copy-of number:</xsl:text>

<xsl:copy-of select="$number"/>

<xsl:text>&#10;Value-of node-set:</xsl:text>

<xsl:value-of select="$node-set"/>

<xsl:text>&#10;Copy-of node-set:</xsl:text>

<xsl:copy-of select="$node-set"/>

<xsl:text>&#10;Value-of tree:</xsl:text>

<xsl:value-of select="$tree"/>

<xsl:text>&#10;Copy-of tree:</xsl:text>

<xsl:copy-of select="$tree"/>

 </xsl:template>

</xsl:stylesheet>

  • Читать дальше
  • 1
  • ...
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: