Атрибут xsl:use-attribute-sets

Мы упомянули о том, что именованные наборы атрибутов используются в элементах посредством атрибута xsl:use-attribute-sets. Разберем более детально, где этот атрибут может применяться, и какие функции он при этом выполняет. Для удобства эти данные сведены в табл. 7.1.

Таблица 7.1. Использование атрибута xsl:use-attribute-sets

Родительский элемент Особенности использования
xsl:attribute-set Включает в определяемый набор атрибутов атрибуты из перечисленных наборов
xsl:element Включает в создаваемый элемент атрибуты из перечисленных наборов. Включение эквивалентно текстовому включению — значения атрибутов вычисляются в контексте создающего элемента xsl:element
xsl:copy Включает в копируемый элемент атрибуты из перечисленных наборов. Принцип действия— как в случае с xsl:element. Копируемый узел должен быть элементом
Литеральный результирующий элемент Принцип действия такой же, как и в случае с xsl:element. В случае совпадения имен, значения атрибутов из набора будут переопределять значения атрибутов самого элемента. При использовании в литеральном элементе, атрибут xsl:use-attribute-sets должен быть обязательным образом объявлен принадлежащим пространству имен XSLT. Как правило, это делается указанием префикса xsl

Создание текстовых узлов

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

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

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

<answer>No!</answer>

Листинг 7.12. Шаблон преобразования

<xsl:template match='answer'>

 The answer was &quot;<xsl:value-of select='text()'/>&quot;.

</xsl:template>

Листинг 7.13. Созданный текст

The answer was 'No!'.

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

Элемент xsl:text

Синтаксис данного элемента представлен ниже:

<xsl:text

 disable-output-escaping='yes' | 'no'>

 <!-- Содержимое: символьные данные -->

</xsl:text>

Элемент xsl:text служит для того, чтобы создавать в выходящем документе текстовые узлы. При этом xsl:text имеет следующие особенности.

□ Преобразования будут сохранять пробельные символы, находящиеся в элементе xsl:text. То есть, для того чтобы вывести в выходящий документ пробельный символ, например такой, как символ перевода строки, достаточно написать

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

□ Элемент xsl:text имеет атрибут disable-output-escaping, который позволяет избежать замены в выходящем документе специальных символов на символьные или встроенные сущности. Например, для того, чтобы вывести символ '<' можно указать в преобразовании

<xsl:text disable-output-escaping='yes'>&lt;</xsl:text>

В остальных случаях символьные данные, включенные в элемент xsl:text, ведут себя так же, как и вне xsl:text.

Элемент xsl:value-of

Этот элемент является одним из наиболее часто используемых в XSLT. Он служит для вычисления значений выражений.

Синтаксическая конструкция элемента следующая:

<xsl:value-of

 select='выражение'

 disable-output-escaping='yes' | 'no'/>

В обязательном атрибуте select этого элемента задается выражение, которое вычисляется процессором, затем преобразовывается в строку и выводится в результирующем дереве в виде

Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

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