Les axes nodaux possèdent des synonymes abrégés permettant de naviguer dans l'arborescence d'un document à l'image des commandes de système de fichiers telles que connaissent UNIX, le DOS ou encore comme les liens relatifs sur Internet.
Par exemple, l'expression suivante est équivalente à la seconde.
parent::personnel
../personnel
| Opérateur | Description |
|---|---|
| element | sélectionne tous les éléments element fils du noeud courant (child::element). |
| * | sélectionne tous les éléments fils du noeud courant. |
| / | représente l'élément racine. |
| // | représente n'importe quel descendant de l'élément racine, donc tous les éléments (descendant-or-self::node()). |
| . | représente l'élément courant (self::node()). |
| .. | permet de remonter d'un niveau dans l'arborescence du document par rapport à l'élément courant (parent::node()). |
| /element | sélectionne tous les éléments element sous l'élément racine (). |
| ./element | sélectionne tous les éléments element sous l'élément courant (following::element). |
| ../element | sélectionne tous les éléments element sous l'élément parent du noeud courant (preceding::element). |
| //element | sélectionne tous les éléments element descendants du noeud courant à quelque niveau de profondeur que ce soit. |
| @attribut | sélectionne tous les attributs attribut du noeud courant (attribute::attribut). |
| | | correspond à un ou. |
<?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="xml" media-type="text/xml; 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>Lien</th>
</tr>
<xsl:apply-templates select="//logiciel"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="logiciel">
<xsl:choose>
<xsl:when test=".//@lien != ''">
<xsl:variable name="url" select=".//@lien"/>
<tr>
<td class="c1">
<a href="./{.//@lien}" target="_blank"
style="font-size:10pt; font-weight:bold">
<xsl:apply-templates select="./nom"/>
</a>
</td>
<td>
<xsl:value-of select="$url"/>
</td>
</tr>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="url">failed.html</xsl:variable>
<tr>
<td class="c1">
<a href="./failed.html" target="_blank"
style="font-size:10pt; font-weight:bold">
<xsl:apply-templates select="./nom"/>
</a>
</td>
<td>
<xsl:value-of select="$url"/>
</td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> |