<link href="/assets/64d0ba83aa42c90354ff97799bcfc0c2.css" type="text/css" rel="stylesheet"> <script src="/assets/6fd6663d5303bb7eda3ef7493fc29db6.js"></script> <script> $(document).ready(function() { anchors.options = { visible: 'hover', placement: 'right', truncate: 64 }; anchors.add('#body h2, #body h3, #body h4, #body h5'); }); </script> <script> hljs.initHighlightingOnLoad(); </script>
<h3>Motifs (patterns)</h3> <p>Les <strong>motifs</strong> sont un sous-ensemble des expressions <strong>XPath</strong>. En XSLT, lls sont utilisés comme valeurs .des attributs <code>match</code>. Voici quelques exemples de motifs (extrait de la recommandation) :</p> <ul> <li><code>/</code> correspond à la racine du document (≠ élément racine)</li> <li><code>*</code> correspond à n’importe quel élément</li> <li><code>@*</code> correspond à n’importe quel attribut</li> <li><code>text()</code> correspond à n’importe quel noeud textuel</li> <li><code>.</code> correspond au noeud courant : cela peut-être un élément, un attribut ou du texte</li> <li><code>..</code> correspond à l'élément parent</li> <li><code>para</code> correspond à n’importe quel élément para fils du noeud courant</li> <li><code>chapter|appendix</code> trouve tous les éléments <code>chapter</code> et <code>appendix</code> fils du noeud courant</li> <li><code>olist/item</code> trouve tous les éléments <code>item</code> ayant <code>olist</code> comme <code>parent</code></li> <li><code>appendix//para</code> correspond à n’importe quel élément <code>para</code> dont un ancêtre est un élément <code>appendix</code> fils du noeud courant</li> <li><code>processing-instruction()</code> correspond à n’importe quel instruction de traitement</li> <li><code>node()</code> correspond à n’importe quel noeud autre qu’un noeud attribut et que le noeud racine</li> <li><code>id("W11")</code> correspond à l‘élément ayant l’identifiant unique <code>W11</code></li> <li><code>para[1]</code> correspond au premier des éléments <code>para</code> d’un parent</li> <li><code>*[position()=1 and self::para]</code> correspond à n’importe quel élément <code>para</code> qui est le premier élément fils de son parent</li> <li><code>para[last()=1]</code> correspond à n’importe quel élément <code>para</code> fils du noeud courant qui est l’unique élément <code>para</code> de son élément parent</li> <li><code>items/item[position()>1]</code> correspond à tous les éléments <code>item</code> fils du noeud courant, autres que le premier, et dont le parent est <code>items</code></li> <li><code>item[position() mod 2 = 1]</code> serait vrai pour tous les fils <code>item</code> de numéro d’ordre impair par rapport à leur parent.</li> <li><code>div[@class="appendix"]//p</code> correspond à tous les éléments <code>p</code> ayant un ancêtre <code>div</code> pour lequel l’attribut <code>class</code> prend la valeur <code>appendix</code></li> <li><code>@class</code> correspond à tous les attributs <code>class</code> (<strong>pas</strong> à tous les éléments ayant l’attribut <code>class</code>)</li> </ul>