Атрибут
Мы упомянули о том, что именованные наборы атрибутов используются в элементах посредством атрибута xsl:use-attribute-sets
. Разберем более детально, где этот атрибут может применяться, и какие функции он при этом выполняет. Для удобства эти данные сведены в табл. 7.1.
Родительский элемент | Особенности использования |
---|---|
xsl:attribute-set | Включает в определяемый набор атрибутов атрибуты из перечисленных наборов |
xsl:element | Включает в создаваемый элемент атрибуты из перечисленных наборов. Включение эквивалентно текстовому включению — значения атрибутов вычисляются в контексте создающего элемента xsl:element |
xsl:copy | Включает в копируемый элемент атрибуты из перечисленных наборов. Принцип действия— как в случае с xsl:element . Копируемый узел должен быть элементом |
Литеральный результирующий элемент | Принцип действия такой же, как и в случае с xsl:element . В случае совпадения имен, значения атрибутов из набора будут переопределять значения атрибутов самого элемента. При использовании в литеральном элементе, атрибут xsl:use-attribute-sets должен быть обязательным образом объявлен принадлежащим пространству имен XSLT. Как правило, это делается указанием префикса xsl |
Создание текстовых узлов
Шаблон преобразования может содержать текстовые узлы, которые при выполнении шаблона после обработки пробельных символов будут попросту скопированы в результирующее дерево. Таким образом, для того, чтобы вывести в выходящий документ некоторый текст, можно просто включить его в шаблон преобразования.
Рассмотрим пример.
<answer>No!</answer>
<xsl:template match='answer'>
The answer was "<xsl:value-of select='text()'/>".
</xsl:template>
The answer was 'No!'.
Текстовые узлы могут также быть созданы элементами xsl:text
и xsl:value- of
. Элемент xsl:text
используется для создания текстовых узлов, содержащих пробельные и специальные символы, в то время как элемент xsl:value-of
выводит в выходящее дерево строковый результат вычисления выражений.
Элемент
Синтаксис данного элемента представлен ниже:
<xsl:text
disable-output-escaping='yes' | 'no'>
<!-- Содержимое: символьные данные -->
</xsl:text>
Элемент xsl:text
служит для того, чтобы создавать в выходящем документе текстовые узлы. При этом xsl:text
имеет следующие особенности.
□ Преобразования будут сохранять пробельные символы, находящиеся в элементе xsl:text
. То есть, для того чтобы вывести в выходящий документ пробельный символ, например такой, как символ перевода строки, достаточно написать
<xsl:text> </xsl:text>
□ Элемент xsl:text
имеет атрибут disable-output-escaping
, который позволяет избежать замены в выходящем документе специальных символов на символьные или встроенные сущности. Например, для того, чтобы вывести символ '<
' можно указать в преобразовании
<xsl:text disable-output-escaping='yes'><</xsl:text>
В остальных случаях символьные данные, включенные в элемент xsl:text
, ведут себя так же, как и вне xsl:text
.
Элемент
Этот элемент является одним из наиболее часто используемых в XSLT. Он служит для вычисления значений выражений.
Синтаксическая конструкция элемента следующая:
<xsl:value-of
select='
disable-output-escaping='yes' | 'no'/>
В обязательном атрибуте select
этого элемента задается выражение, которое вычисляется процессором, затем преобразовывается в строку и выводится в результирующем дереве в виде