=> Главная База Знаний Xslt Числа xpath


Числа xpath

Числа XPath

В XPath числа хранятся в формате чисел с плавающей точкой двойной точности. В соответствии с формальным определением, числа XPath должны храниться в формате 64-разрядных чисел с плавающей точкой двойной точности IEEE 754, и все числа хранятся как числа с плавающей точкой двойной точности.

В XPath можно выполнять следующие операции над числами, как мы уже видели в главе 4 при обсуждении предикатов XPath:

• 

+
сложение;

• 

-
вычитание;

 

*
умножение;

• 

div
деление (символ /, соответствующий делению в других языках, в XML и XPath уже занят);

• 

mod
возвращает значение деления по модулю двух чисел (остаток после деления первого числа на второе).

Например, элемент

<xsl:value-of select="15+75"/>
вставит в выходной документ строку «
90
». В следующем примере выбираются все планеты, чей день (измеренный в днях Земли), умноженный на расстояние планеты от Солнца (измеренное в миллионах миль), больше, чем 60 000:

<xsl:template match="PLANETS">

 <HTML>

  <BODY>

   <xsl:apply-templates select="PLANET[DAY * MASS > 60000]"/>

  </BODY>

 </HTML>

</xsl:template>

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

• 

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

• 

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

• 

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

• 

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

Например, среднее расстояние от Солнца (в миллионах миль) планет в

planets.xml
можно найти таким способом:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

  <HTML>

   <BODY>

    The average planetary distance from the Sun is:

    <xsl:value-of select="sum(child::PLANET/child:DISTANCE) div count(child::PLANET)"/>

   </BODY>

  </HTML>

 </xsl:template>

</xsl:stylesheet>