Elemento <xsl:apply-templates> XSLT

Definição e uso

O elemento <xsl:apply-templates> pode aplicar modelos ao elemento atual ou aos seus subelementos.

Se adicionarmos a propriedade select ao elemento <xsl:apply-templates>, ele processará apenas os subnóveis que correspondem ao valor dessa propriedade. Podemos usar a propriedade select para definir a ordem de processamento dos subnóveis.

Sintaxe

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

Atributo

Atributo Valor Descrição
select Expressão Opcional. Define o nó a ser processado. A estrela (*) seleciona todo o conjunto de nós. Se este atributo for omitido, todos os subnóveis do nó atual serão selecionados.
mode Nome Opcional. Se houver várias maneiras de processar o mesmo elemento, o mode pode ser usado para distingui-las.

Exemplo

Exemplo 1

Envolver cada elemento title com o elemento 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="title">
  <h1><xsl:apply-templates/></h1>
</xsl:template>
</xsl:stylesheet>

Exemplo 2

Envolver todos os elementos title que pertencem a todos os subnóveis do documento com o elemento 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>

Exemplo 3

Envolver todos os subnóveis do documento com o elemento h1 que têm a propriedade mode definida como "big":

<?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>