XSLT — страница 71 из 124

В XPath имеются следующие функции для работы с числами:

• 

ceiling()
. Возвращает наименьшее целое, большее переданного функции числа,

• 

floor()
. Возвращает наибольшее целое, меньшее переданного функции числа;

• 

number()
. Приводит переданный ей параметр к числу;

• 

round()
. Округляет переданное функции число до ближайшего целого;

• 

sum()
. Возвращает сумму переданных функции чисел.

В следующих разделах мы рассмотрим примеры применения каждой из этих функций.

ceiling()

Функция

ceiling
возвращает наименьшее целое, которое все еще больше переданного функции числа, то есть она возвращает следующее большее целое. Функция применяется следующим образом:

number ceiling(number)

Например, выражение

ceiling(3.1415926535)

возвращает 4.

floor()

Функция

floor
— парная к функции
ceiling
. Она возвращает наибольшее целое, которое все еще меньше переданного ей числа. Другими словами, функция возвращает предыдущее целое. Функция применяется следующим образом:

number floor(number)

В этом примере я при помощи

floor
преобразую длительность дней планет в целые числа:

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   .

   .

   .





А вот результирующий документ:

</code></pre></p><p><pre><code>   The Planets Table</code></pre></p><p><pre><code>

   The Planets Table

NameMassRadiusDay
Mercury.0553 (Earth = 1)1516 miles58 days
Venus.815 (Earth = 1)3716 miles116 days
Earth1 (Earth = 1)2107 miles1 days

number()

Функция

number
приводит свой аргумент к числу. Функция применяется следующим образом:

number number(object?)

В этом примере я передаю

number
строку:

number("456.7")

Это выражение возвращает число 456.7. Если вы попытаетесь преобразовать что-то, что

number
не сможет перевести в число, функция вернет значение XPath
NaN
(Not a Number, не число).
NaN
— корректное значение, которое можно проверять в выражениях Xpath.

round()

Функция

round
округляет переданное ей значение. Функция применяется следующим образом:

number round(number)

Например,

round(3.1415926535)
возвращает 3,
round(4.5)
возвращает 5 и
round(-1.5)
возвращает -1.

sum()

Функция

sum
суммирует численные значения набора узлов и возвращает результат. Функция применяется следующим образом:

number sum(node-set)

Взгляните на следующий пример из главы 4, который находит средние массы планет в

planets.xml
:

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    The average planetary mass is

Логические функции XPath