Elemento <xsl:apply-templates> XSLT

Definición y uso

El elemento <xsl:apply-templates> puede aplicar plantillas al elemento actual o a los elementos hijos del elemento actual.

Si agregamos la propiedad select al elemento <xsl:apply-templates>, solo procesará los elementos hijos que coinciden con el valor de esta propiedad. Podemos usar la propiedad select para definir el orden de procesamiento de los sub-elementos.

Sintaxis

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

Atributo

Atributo Valor Descripción
select Expresión Opcional. Define el nodo que se debe procesar. El asterisco selecciona todo el conjunto de nodos. Si se omite este atributo, se seleccionarán todos los nodos hijos del nodo actual.
mode Nombre Opcional. Si hay varios métodos de procesamiento definidos para el mismo elemento, se puede distinguir entre ellos utilizando mode.

Ejemplo

Ejemplo 1

Envuelva cada elemento title del documento con el 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>

Ejemplo 2

Envuelva todos los elementos title que pertenecen a todos los elementos hijos del documento dentro del 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>

Ejemplo 3

Envuelva todos los nodos hijos del atributo "mode" establecido como "big" del documento con el 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="*" mode="big"/></h1>
</xsl:template>
</xsl:stylesheet>