Элемент <xsl:apply-templates>

Предписывает XSLT-процессору найти и применить соответствующий шаблон в зависимости от типа и контекста каждого выбранного узла.

<xsl:apply-templates
  select = Expression
  mode = QName
</xsl:apply-templates>

Атрибуты

  • select
    Может использоваться для обработки узлов, выбранных с помощью выражения, вместо обработки всех узлов. Значением атрибута select является выражение Выражения (XSLT), результатом вычисления которого должен быть набор узлов. Выбранный набор узлов обрабатывается по порядку появления в документе, если не задан другой порядок сортировки.

  • режим
    Атрибут mode позволяет обрабатывать элемент согласно его имени Полные имена (XSLT) несколько раз и каждый раз получать другой результат. Если элемент <xsl:template> не имеет атрибута match, он не может иметь атрибута mode. Если элемент <xsl:apply-templates> имеет атрибут mode, он применяется только к правилам шаблона из элементов <xsl:template>, имеющих атрибут mode с тем же значением. Если у элемента <xsl:apply-templates> нет атрибута mode, он применяется только к правилам шаблона из элементов <xsl:template>, не имеющих атрибута mode.

Сведения об элементе

Количество вхождений

Без ограничений

Родительские элементы

xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, выходные элементы

Дочерние элементы

xsl:sort, xsl:with-param

Заметки

Элемент <xsl:apply-templates> сначала выбирает набор узлов с помощью выражения, заданного атрибутом select. Если этот атрибут не задан, выбираются все дочерние элементы текущего узла. Для каждого из выбранных узлов атрибут <xsl:apply-templates> указывает обработчику XSLT, что нужно найти соответствующий шаблон <xsl:template> для применения. Применимость шаблонов проверяется сравнением узла с выражением XPath, заданным в атрибуте match данного шаблона. Если соответствие найдено для нескольких шаблонов, выбирается шаблон с наивысшим приоритетом. Если несколько шаблонов имеют одинаковый приоритет, выбирается тот, который расположен в таблице стилей последним.

В следующем разделе приводится пример элемента <xsl:apply-templates>.