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:templateMDN (рус.)xsl:templateMSDN (en)