</xsl:template>
Результат будет получен в виде:
<а href='/images/rose.jpg'><img src='/images/th_rose.jpg'/></a>
<a href='/images/orchide.gif'><img src='/images/th_orchide.gif'/></a>
<a href='/images/primul. gif'><img src='/images/th_primul.gif'/></a>
Для того чтобы использовать в значении атрибута левые и правые фигурные скобки в качестве простых символов, нужно удваивать их количество, то есть указывать '{{
' вместо каждой левой и '}}
' вместо каждой правой фигурной скобки соответственно.
Элемент, определенный как
<input name='login' type='text'
value='{{{{{{Enter your login here}}}}}}'/>
будет преобразован в выходящем документе к виду
<input name='login' type='text' value='{{{Enter your login here}}}'/>
Фигурные скобки нельзя использовать рекурсивно для вычисления внутри выражений. К примеру, в качестве значения атрибута name
, определенного как
<story name='{/h{1 + 2}/p}'/>
не будет использовано вычисленное значение выражения /h3/p
. Вместо этого процессор выдаст ошибку.
Фигурные скобки могут быть спокойно использованы внутри выражения в литералах — в этом случае они не будут задавать значений атрибутов.
Элемент, определенный как
<page numbers='{concat ('{', ' 1,2,3', '}') }'/>
будет преобразован к виду
<page numbers='{1,2,3}'/>
Шаблоны значений могут быть использованы далеко не везде. К примеру, не могут содержать шаблонов следующие типы атрибутов.
□ Атрибуты, значениями которых являются выражения.
□ Атрибуты, значениями которых являются паттерны.
□ Атрибуты элементов верхнего уровня.
□ Атрибуты пространств имен (xmlns
).
Шаблоны значений могут содержаться в любых атрибутах литеральных элементов, что уже несколько раз было продемонстрировано выше. Например, в литеральном элементе
<img src='{../@dir}/th_{@filename}'/>
атрибут src
содержит ни что иное, как два шаблона значений.
Что же касается атрибутов элементов XSLT, то как очевидно из табл. 4.4, лишь малая их часть может содержать шаблоны значений.
Элемент | Атрибуты | Описание |
---|---|---|
xsl:element | name | Имя создаваемого элемента |
namespace | Пространство имен создаваемого элемента | |
xsl:attribute | name | Имя создаваемого атрибута |
namespace | Пространство имен создаваемого атрибута | |
xsl:processing-instruction | name | Имя целевого приложения инструкции по обработке |
xsl:number | format | Формат номера |
lang | Языковой контекст номера | |
letter-value | Традиционная или алфавитная буквенная нумерация | |
grouping-separator | Символ-разделитель групп цифр номера | |
grouping-size | Размер группы цифр номера | |
xsl:sort | lang | Языковой контекст сортировки |