Élément <xsl:number> de XSLT

Définition et utilisation

<xsl:number> est utilisé pour déterminer la position entière actuelle du noeud dans le source. Il est également utilisé pour insérer des nombres formatés dans l'arbre de résultat.

Grammaire

<xsl:number
count="expression"
level="single|multiple|any"
from="expression"
value="expression"
format="formatstring"
lang="languagecode"
letter-value="alphabetic|traditional"
grouping-separator="character"
grouping-size="number"/>

Attribut

Attribut Valeur Description
count expression Optionnel. Expression XPath qui indique les nœuds à calculer.
level
  • single
  • multiple
  • any

Optionnel. Contrôle la manière dont les numéros sont attribués.

Les valeurs peuvent être :

  • single (par défaut)
  • multiple
  • any (Netscape 6 ne supporte pas)
from expression Optionnel. Expression XPath qui indique d'où commencer le comptage.
value expression Optionnel. Définit le nombre fourni par l'utilisateur pour le remplacer par le numéro généré.
format formatstring Optionnel. Définit le format de sortie des nombres.Valeurs utilisables.
lang languagecode Optionnel. Définit l'alphabet utilisé pour les lettres de numérotation.
letter-value
  • alphabetic
  • traditional
Optionnel. Supprime les ambiguïtés entre les séquences numériques alphabétiques. La valeur "alphabetic" spécifie la séquence alphabétique ; la valeur "traditional" spécifie d'autres séquences. La valeur par défaut est "alphabetic".
grouping-separator character Optionnel. Définit le caractère utilisé pour séparer les groupes ou les nombres. Par défaut, c'est la virgule.
grouping-size number Optionnel. Définit la taille du groupe. Par défaut, c'est 3.

Marqueur de format

Marqueur de format Séquence générée
1 1 2 3 4 5 ... 10 11 12 ...
01 01 02 03 ... 19 10 11 ... 99 100 101...
a a b c . .
A A B C ...Z AA AB AC...
i i ii iii iv v vi vii viii ix x...
I I II III IV V VI VII VIII IX X...

Commentaires :Marqueurs non supportés par Netscape 6 : 01, a, A, i, I.

Exemple

Exemple 1

<xsl:number value="250000" grouping-separator="."/>

Sortie :

250.000

Exemple 2

<xsl:number value="250000" grouping-size="2"/>

Sortie :

25,00,00

Exemple 3

<xsl:number value="12" grouping-size="1" grouping-separator="#" format="I"/>

Sortie :

X#I#I

Exemple 4

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:template match="/">
  <html>
  <body>
  <p>
  <xsl:for-each select="catalog/cd">
    <xsl:number value="position()" format="1" />
    <xsl:value-of select="title" /><br />
  </xsl:for-each>
  </p>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>