xsl:template¶
Элемент верхнего уровня xsl:template
определяет в преобразовании шаблонное правило, или просто шаблон.
Синтаксис¶
1 2 3 4 5 6 7 8 |
|
Атрибуты:
match
- необязательный атрибут, задает паттерн — образец узлов дерева, для преобразования которых следует применять этот шаблон
name
- необязательный атрибут, определяет имя для именованных шаблонов
mode
- необязательный атрибут, определяет режим данного шаблонного правила. Режимы позволяют задавать различные преобразования для одних и тех же частей документа
priority
- необязательный атрибут, используется для определения значения, которое называется приоритетом шаблонного правила. Это значение используется для разрешения конфликтов шаблонов в случае, когда один узел может быть обработан различными правилами.
Описание и примеры¶
При определении шаблона нужно обязательно указать хотя бы один из атрибутов match
или name
, причем эти атрибуты могут присутствовать в xsl:template
одновременно.
Пример 1¶
1 2 3 4 5 |
|
В этом правиле атрибут match
говорит о том, что оно должно использоваться для обработки элементов bold
— в данном случае они будут заменяться на элементы b
. Шаблоны, в которых определен атрибут match
, вызываются при помощи инструкции xsl:apply-templates
.
Именованные шаблоны могут вызываться вне зависимости от текущего контекста, и даже вести себя как функции — принимать на вход параметры и возвращать некоторые значения.
Пример 2¶
1 2 3 4 5 |
|
В отличие от предыдущего примера, это правило не будет обрабатывать какие-либо определенные узлы. Вызвать его можно будет только по имени посредством элемента xsl:call-template
.
Атрибуты шаблонного правила не влияют на выполнение его содержимого. Они используются элементами xsl:apply-templates
и xsl:call-template
при выборе шаблонов. Правила, которые были импортированы в преобразование, вызываются элементом xsl:apply-imports
.
Ссылки¶
xsl:template
MDN (рус.)xsl:template
MSDN (en)