Книга: Технология XSLT
Элемент xsl:variable
Элемент xsl:variable
Синтаксис этого элемента в XSLT определен так:
<xsl:variable
name="имя"
select="выражение">
<!-- Содержимое: шаблон -->
</xsl:variable>
Для объявления переменных в XSLT служит элемент xsl:variable
, который может как присутствовать в теле шаблона, так и быть элементом верхнего уровня. Элемент xsl:variable
связывает имя, указанное в обязательном атрибуте name, со значением выражения, указанного в атрибуте select
или с деревом, которое является результатом выполнения шаблона, содержащегося в этом элементе. В том случае, если объявление переменной было произведено элементом верхнего уровня, переменная называется глобальной переменной. Переменные, определенные элементами xsl:variable
в шаблонах (то есть не на верхнем уровне) называются локальными переменными.
Таким образом, объявление переменной в XSLT происходит всего в два шага:
? сначала вычисляется значение присваиваемого выражения;
? затем полученное значение связывается с указанным именем.
Значение присваиваемого выражения вычисляется в зависимости от того, как был определен элемент xsl:variable
:
? если в элементе xsl:variable
определен атрибут select
, то значением присваиваемого выражения будет результат вычисления выражения, указанного в этом атрибуте;
? если атрибут select
не определен, но сам элемент xsl:variable
имеет дочерние узлы (иными словами, содержит шаблон), значением определяемой переменной будет результирующий фрагмент дерева, полученный в результате выполнения содержимого xsl:variable
;
? если атрибут select
не определен и при этом сам элемент xsl:variable
пуст, значением параметра по умолчанию будет пустая строка.
Использовать значения, присвоенные переменным при инициализации, можно, указывая впереди имени переменной символ "$
", например для переменной x
— $x
. В XPath-выражениях синтаксис обращения к переменным соответствует продукции VariableReference
.
Имя переменной соответствует синтаксическому правилу QName
, иными словами, оно может иметь вид имя
или префикс:имя
. Как правило, имена переменным даются без префиксов, однако в том случае, если префикс все же указан, переменная ассоциирует с некоторым объектом не простое, а расширенное имя. Соответственно, обращение к объекту должно будет производиться также посредством расширенного имени.
- Фрагмент DTD для таблиц стилей XSLT
- Элемент xsl:copy-of
- Элементы xsl:stylesheet и xsl:transform
- Элемент xsl:include
- Элемент xsl:value-of
- 8.5.2 Typical Condition Variable Operations
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- Использование отдельных процессоров XSLT
- Письма с элементами графики и вложениями
- Элемент STYLE