Elemento <xsl:apply-templates> XSLT

Definizione e uso

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

Se aggiungiamo l'attributo select all'elemento <xsl:apply-templates>, verranno trattati solo i figli che corrispondono al valore dell'attributo. Possiamo utilizzare l'attributo select per definire l'ordine di trattamento dei sotto-punti.

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 set di nodi. Se l'attributo viene omesso, vengono 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

Includi l'elemento h1 intorno a ogni elemento title:

<?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

Includi l'elemento h1 intorno a tutti gli elementi title appartenenti a message:

<?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

Includi l'elemento h1 intorno a tutti i figli di message con 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>