Elemento <xsl:apply-templates> de XSLT

Definición y uso

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

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

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. Especifica el nodo a procesar. El asterisco selecciona todo el conjunto de nodos. Si se omite este atributo, se seleccionarán todos los subnodos del nodo actual.
mode Nombre Opcional. Si hay varios métodos de procesamiento definidos para el mismo elemento, se puede usar mode para distinguirlos.

Ejemplo

Ejemplo 1

Usa el elemento h1 para rodear cada elemento title del 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>

Ejemplo 2

Envuelva todos los elementos title que pertenecen a todos los subelementos del mensaje 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="title"/></h1>
</xsl:template>
</xsl:stylesheet>

Ejemplo 3

Envuelva todos los subnodos del mensaje con el elemento h1 que tienen la propiedad mode configurada 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>