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>.
<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>
Les attributs :
| 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> |