L'élément <xsl:variable> permet de déclarer une variable dans une feuille de style.
<xsl:variable name="nom"> Valeur... </xsl:variable>
La valeur du paramètre se trouve au sein des marqueurs.
Si l'attribut select est utilisé, alors <xsl:variable> doit être un élément vide et le contenu de l'attribut sera la valeur du paramètre.
Les attributs :<xsl:variable name="nom" select="expression"/>
| Attribut | Description |
|---|---|
| name="nom" | affecte un nom au paramètre. |
| select="pattern" | sélectionne un type de noeuds dans l'arborescence du document XML. |
Dans le cas où la variable est déclarée dans l'élément <xsl:stylesheet>, alors elle serait valable dans l'ensemble de la feuille.
Déclarée dans une règle de modèle <xsl:template>, la variable a une portée locale.
Une variable est appelée par l'intermédiaire de son nom qui doit être précédé du signe dollar ($).
Deux éléments <xsl:variable> ne peuvent se faire mutuellement référence.
Cet élément peut être contenu dans les instructions suivantes :
Cet élément peut contenir les instructions suivantes :
<?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="/">
<xsl:variable name="num" select="1"/>
<html>
<head>
<title>La logithèque</title>
</head>
<body>
<h2>
Le premier logiciel de chaque catégorie
</h2>
<table border="0" width="60%" class="produit">
<tr>
<th colspan="3">Logiciel</th>
</tr>
<tr>
<th style="text-align:left">Editeur</th>
<th>Langue</th>
<th>OS</th>
</tr>
<xsl:apply-templates
select="logitheque/categorie/logiciel[$num]">
<xsl:sort select="nom"/>
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="logitheque/categorie/logiciel">
<tr>
<th colspan="3">
<xsl:value-of select="../@nom"/>
</th>
</tr>
<tr>
<td colspan="3" class="c1">
<a href="{editeur/@lien}" target="_blank"
style="font-size:10pt; font-weight:bold"
title="{prix} {prix/@monnaie}">
<xsl:apply-templates select="nom"/>
</a>
- <xsl:apply-templates select="commentaire"/>
</td>
</tr>
<tr>
<td>
<a href="{editeur/@lien}" target="_blank">
<xsl:apply-templates select="editeur"/>
</a>
</td>
<td>
<xsl:apply-templates select="langue"/>
</td>
<td>
<xsl:apply-templates select="plateforme"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet> |