L'élément <xsl:template> permet de définir une règle de modèle, c'est-à-dire, par l'intermédiaire de la valeur de l'attribut match, des éléments seront prêts pour l'application de règles de style.
<xsl:template match="pattern"> ... </xsl:template>
Il suffira ensuite d'utiliser l'élément <xsl:apply-templates> en son sein, afin d'effectuer la mise en forme des éléments ciblés.
<xsl:template match="pattern"> ... <xsl:apply-templates select="cible"/> ... </xsl:template>
Par ailleurs, si un mode est indiqué dans <xsl:apply-template>, alors seuls les éléments correspondants à la fois au pattern du template et à ce mode, subiront une mise en forme.
<xsl:template match="pattern"> ... <xsl:apply-templates mode="nom"/> ... </xsl:template>
Enfin, l'élément <xsl:value-of> utilisé dans une règle de modèle permet de récupérer les valeurs des éléments ciblés ou de leurs attributs.
<xsl:template match="pattern"> ... <xsl:value-of select="expression"/> ... </xsl:template>
Si l'attribut name est utilisé dans le template, ce-dernier se comportera comme une fonction.
<xsl:template name="nom"> ... </xsl:template>
La fonction générée est appelée explicitement par son nom avec l'élément <xsl:call-template>.
<xsl:template name="nom_template"> ... </xsl:template> <xsl:template match="pattern"> ... <xsl:call-template name="nom_template"/> ... </xsl:template>
Outre les règles de style contenues dans le template appelé, des paramètres peuvent également être passés par l'intermédiaire des éléments <xsl:param> dans la fonction template et <xsl:with-param> dans <xsl:call-template>.
Les attributs :<xsl:template name="nom_template"> <xsl:param name="nom_paramètre"> Valeur </xsl:param> ... </xsl:template> <xsl:template match="pattern"> ... <xsl:call-template name="nom_template"> <xsl:with-param name="nom_paramètre"> Nouvelle valeur <xsl:/with-param> </xsl:call-template> ... </xsl:template>
Attribut | Description |
---|---|
match="pattern" | traite les noeuds sélectionnés par le pattern spécifié, au lieu de traiter tous les éléments. |
name="nom" | traite les noeuds sélectionnés par le pattern spécifié, au lieu de traiter tous les éléments. |
priority="niveau" | applique les templates avec un mode donné. |
mode="mode" | applique les templates avec un mode donné. |
Cet élément ne peut être contenu que dans les instructions <xsl:stylesheet> et <xsl:transform>.
L'élément <xsl:template> accepte en son sein les éléments suivants :
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/> <xsl:template match="/"> <html> <head> <title>La logithèque</title> </head> <body> <table border="0" width="60%" class="produit"> <tr> <th>Logiciel</th> <th>Editeur</th> </tr> <xsl:apply-templates select="logitheque/categorie/logiciel"/> </table> </body> </html> </xsl:template> <xsl:template match="logitheque/categorie/logiciel"> <tr> <td> <a href="{editeur/@lien}" target="_blank" style="font-size:10pt; font-weight:bold"> <xsl:apply-templates select="nom"/> </a> - <xsl:apply-templates select="commentaire"/> </td> <td> <a href="{editeur/@lien}" target="_blank"> <xsl:apply-templates select="editeur"/> </a> </td> </tr> </xsl:template> </xsl:stylesheet> |