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

Определение и использование

Элемент <xsl:apply-templates> можетapply шаблоны к текущему элементу или подэлементам текущего элемента.

Если мы добавляем атрибут select к элементу <xsl:apply-templates>, то он будет обрабатывать только подэлементы, соответствующие значению этого атрибута. Мы можем использовать атрибут select для определения порядка обработки подэлементов.

Синтаксис

<xsl:apply-templates select="expression" mode="name">
  <!-- Content:(xsl:sort|xsl:with-param)* -->
</xsl:apply-templates>

Свойство

Свойство Значение Описание
select Выражение Опционально. Определяет узел, подлежащий обработке. Звездочка (*) выбирает весь узел. Если это свойство опущено, то выбираются все подузлы текущего узла.
mode Название Опционально. Если для одного и того же элемента определено несколько методов обработки, то их можно отличить с помощью mode.

Пример

Пример 1

Используйте элемент h1 для обертывания каждого элемента title в документе:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:template match="title">
  <h1><xsl:apply-templates/></h1>
</xsl:template>
</xsl:stylesheet>

Пример 2

Оберните все элементы title, принадлежащие всем подузлам message в документе, элементом h1:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:template match="message">
  <h1><xsl:apply-templates select="title"/></h1>
</xsl:template>
</xsl:stylesheet>

Пример 3

Оберните все подузлы message в документе с атрибутом mode="big" элементом h1:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:template match="message">
  <h1><xsl:apply-templates select="*" mode="big"/></h1>
</xsl:template>
</xsl:stylesheet>