Элемент <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>