<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>Gestion des caractères d'espacement en XSLT</h3> <p>Un document XML peut contenir des caractères d’espacement (blancs, tabulations, sauts de ligne) pour des raisons de présentation. Selon les circonstances, on peut vouloir préserver ou supprimer ces espaces lors d’une transformation XSLT.</p> <h4>Suppression/préservation des nœuds textuels « vide »</h4> <p>Un document XML contient généralement entre les nœuds éléments de nombreux nœuds textuels ne contenant que des blancs, des tabulations ou des sauts de ligne. Ces nœuds textuels peuvent être sémantiquement important, comme dans le cas de <em>contenu mixte</em>. Dans d'autre cas, ces nœuds peuvent être ignorés. Lors de la lecture du document d’entrée par le moteur XSLT, les nœuds textuels ne contenant que des espaces (#x20, #x9, #xD ou #xA) peuvent être supprimés (ils doivent l‘être d’après la recommandation, pas toujours en réalité).</p> <p>Les éléments de haut niveau &lt;xsl:strip-space&gt; et &lt;xsl:preserve-space&gt; permettent de modifier ce comportement par défaut.</p> <p>Voir par exemple <a href="/static/exemples/xslt/ex4.xsl">cette feuille de style</a> appliquée à <a href="/static/exemples/xslt/ex4.xml">ce fichier XML</a>.</p> <h4>« Normalisation » des espaces dans les noeud textuels : normalize-space()</h4> <p>Dans l’exemple suivant :</p> <pre><code class="language-xml">&lt;nom&gt; A. Halperin &lt;/nom&gt;</code></pre> <p>la valeur du noeud texte fils de d'élément <strong>nom</strong> est (_ correspond à un espace,↲ à un saut de ligne) :</p> <pre><code class="language-text">↲ ________A._↲ ________Halperin↲ ______</code></pre> <p><code>&lt;xsl:value-of select="normalize-space(nom)"/&gt;</code> permet d’obtenir : A._Halperin</p>