Element <xsl:number> w XSLT

Definicja i użycie

<xsl:number> element jest używany do określenia liczby całkowitej aktualnego węzła w źródle. Jest również używany do wstawiania sformatowanych liczb do drzewa wynikowego.

Gramatyka

<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"/>

Atrybut

Atrybut Wartość Opis
count expression Opcjonalne. XPath wyrażenie, które określa, które węzły mają być policzone.
level
  • single
  • multiple
  • any

Opcjonalne. Kontrole, jak przydzielane są numery.

Wartości mogą być:

  • single (domyślnie)
  • multiple
  • multiple (Netscape 6 nie obsługuje)
from expression Opcjonalne. XPath wyrażenie, które określa, od którego miejsca zaczyna się liczenie.
value expression Opcjonalne. Określa liczby dostarczone przez użytkownika, które zastępują generowane numeracja.
format formatstring Opcjonalne. Definiuje format wyjściowy liczby.Dostępne wartości.
lang languagecode Opcjonalne. Określa alfabet językowy używany do numerowania.
letter-value
  • alphabetic
  • traditional
Opcjonalne. Usuwa niejasności między sekwencjami numerowanymi używającymi liter. Wartość "alphabetic" wskazuje sekwencje literowe; wartość "traditional" wskazuje inne sekwencje. Domyślna wartość to "alphabetic".
grouping-separator character Opcjonalne. Określa, który znak jest używany do oddzielania grup lub liczb. Domyślnie to przecinek.
grouping-size number Opcjonalne. Określa rozmiar grupowania. Domyślnie to 3.

Format znacznika

Format znacznika Generowany ciąg
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...

Komentarz:Netscape 6 nie obsługuje znaczników: 01, a, A, i, I.

Przykład

Przykład 1

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

Wynik:

250.000

Przykład 2

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

Wynik:

25,00,00

Przykład 3

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

Wynik:

X#I#I

Przykład 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>