Элемент 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"/>

Атрибут

Атрибут Значение Описание
счет выражение Выборочно. XPath-выражение, определяющее узел для счета.
уровень
  • один
  • множественные
  • любой

Выборочно. Управляет распределением номеров.

Значение может быть:

  • один (по умолчанию)
  • множественные
  • любой (Netscape 6 не поддерживает)
из выражение Выборочно. XPath-выражение, определяющее, с чего начинать счет.
значение выражение Выборочно. Определяет число, предоставляемое пользователем, чтобы заменить автоматически сгенерированный номер.
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>