Элемент XSLT <xsl:number>

Определение и использование

<xsl:number> элемент используется для определения целого числа的位置 текущего узла в источнике. Он также используется для вставки форматированного числа в результатное дерево.

Грамматика

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

Атрибут

Атрибут Значение Описание
count expression Опционально. XPath-выражение, определяющее узлы, подлежащие счету.
level
  • single
  • multiple
  • any

Опционально. Контролирует, как распределяются порядковые номера.

Значения могут быть:

  • single (по умолчанию)
  • multiple
  • any (Netscape 6 не поддерживает)
from expression Опционально. XPath-выражение, определяющее, с какого места начинается计数.
value expression Опционально. Определяет用户提供аемые числа, которые заменяют сгенерированные последовательности.
format formatstring Опционально. Определяет формат вывода чисел.Доступные значения.
lang languagecode Опционально. Определяет языковую азбуку, используемую для нумерации.
letter-value
  • alphabetic
  • traditional
Опционально. Устраняет неопределенность между числовыми и алфавитными последовательностями. Значение "alphabetic" указывает на алфавитную последовательность; значение "traditional" указывает на другие последовательности. Значением по умолчанию является "alphabetic".
grouping-separator character Опционально. Определяет символ, используемый для разделения групп или чисел. По умолчанию запятая.
grouping-size number Опционально. Определяет размер группы. По умолчанию 3.

Формат маркера

Формат маркера Сгенерированный последовательность
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...

Комментарий:Маркеры, не поддерживаемые Netscape 6: 01, a, A, i, I.

Пример

Пример 1

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

Вывод:

250.000

Пример 2

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

Вывод:

25,00,00

Пример 3

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

Вывод:

X#I#I

Пример 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>