Elemento <xsl:apply-templates> do XSLT

Definição e uso

O elemento <xsl:apply-templates> pode aplicar o modelo ao elemento atual ou aos elementos filhos do elemento atual.

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

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 tratado. O asterisco seleciona todo o conjunto de nós. Se este atributo for omitido, todos os subnós do nó atual serão selecionados.
mode Nome Opcional. Se houver várias maneiras de lidar com o mesmo elemento, o mode pode ser usado para distinguí-las.

Exemplo

Exemplo 1

Usar o elemento h1 para envolver cada elemento title do documento:

<?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 dos subnóveis do message 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 message com o elemento h1 cujo atributo mode está definido 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>