Elemento <xsl:apply-templates> di XSLT

Definizione e uso

L'elemento <xsl:apply-templates> può applicare il modello all'elemento corrente o ai suoi sottoelementi.

Se aggiungiamo l'attributo select all'elemento <xsl:apply-templates>, verrà trattato solo il sottoelemento che corrisponde al valore dell'attributo. Possiamo utilizzare l'attributo select per definire l'ordine di trattamento dei sottoelementi.

Sintassi

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

Attributo

Attributo Valore Descrizione
select Espressione Opzionale. Specifica il nodo da trattare. L'asterisco seleziona l'intero insieme di nodi. Se l'attributo viene omesso, verranno selezionati tutti i figli del nodo corrente.
mode Nome Opzionale. Se ci sono più metodi definiti per lo stesso elemento, l'attributo mode può distinguerli.

Esempio

Esempio 1

Utilizzare l'elemento h1 per racchiudere ogni elemento title nel 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>

Esempio 2

Avvolgi tutti gli elementi title dei figli del message con l'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>

Esempio 3

Avvolgi tutti i figli del message con l'elemento h1 che ha l'attributo mode impostato su "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>