Функция number (XPath)
Преобразует аргумент в число.
number number(object?)
Заметки
Преобразует аргумент в число, как описано ниже.
Строка, состоящая из необязательных пробелов, за которыми следует необязательный знак минуса, за которым следует число, за которым следует пробел, преобразуется по спецификации IEEE 754 в число, ближайшее (согласно правилу округления к ближайшему спецификации IEEE 754) к математической величине, представленной этой строкой; любая другая строка преобразуется в значение NaN.
Логическое значение true преобразуется в 1; логическое значение false - в 0.
Набор узлов сначала преобразуется в строку, а затем преобразуется так же, как строковый аргумент.
Объект, не принадлежащий ни к одному из четырех базовых типов (набор узлов, логический тип, число, строка), преобразуется в число в зависимости от конкретного типа.
Если аргумент опущен, по умолчанию выбирается набор узлов, состоящий только из узла контекста.
Примечание
Функция number() не должна применяться для преобразования числовых данных, встречающихся в элементах XML-документа, за исключением элементов, относящихся к типу, который представляет числовые данные в независимом от языка формате (который обычно преобразуется в зависимый от языка формат для представления пользователю).Кроме того, функция number() не должна применяться, если независимый от языка формат, используемый элементом, не соответствует синтаксису языка XPath для числа.
Пример
XML-файл
Ничего. XSLT-файл вызывает сам себя.
XSLT-файл (number.xsl)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="number.xsl"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<body>
<h3>number() Function</h3>
<ul>
<li>
<b>number('2048')</b>
=
<xsl:value-of select="number('2048')"/>
</li>
<li>
<b>number('-2048')</b>
=
<xsl:value-of select="number('-2048')"/>
</li>
<li>
<b>number('text')</b>
=
<xsl:value-of select="number('text')"/>
</li>
<li>
<b>number('109.54' div '1')</b>
=
<xsl:value-of select="number('109.54' div '1')"/>
</li>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Форматированный вывод
number() Function
number('2048') = 2048
number('-2048') = -2048
number('text') = NaN
number('109.54') = 109.54
Вывод обработчика
<html>
<body>
<h3>number() Function</h3>
<ul>
<li><b>number('2048')</b>
=
2048</li>
<li><b>number('-2048')</b>
=
-2048</li>
<li><b>number('text')</b>
=
NaN</li>
<li><b>number('109.54' div '1')</b>
=
109.54</li>
</ul>
</body>
</html>