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>