Числа 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>
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 7 Работа с XPath
Глава 7 Работа с XPath В главе 4 было объяснено, как создавать образцы выбора, которые можно использовать в атрибуте match таких элементов, как <xsl:template>. Образцы являются подмножеством полного языка XPath, и в этой главе будет рассмотрена полная версия XPath.Выражения XPath
Типы данных XPath
Типы данных XPath В XPath существует четыре типа данных, а не только тип набора узлов, который должны возвращать образцы выбора:• наборы узлов;• логические значения;• числа;• строки. ФРАГМЕНТЫ РЕЗУЛЬТИРУЮЩЕГО ДЕРЕВА В XSLT 1.0 к типам данных XPath добавляются фрагменты
Наборы узлов XPath
Наборы узлов XPath Как следует из имени, набор узлов (node set) является просто совокупностью узлов. Набор узлов может включать несколько узлов, единственный узел или быть пустым. Поскольку главная задача XPath — определять место разделов документов, постольку возвращающие
Логические значения XPath
Логические значения XPath Логические (Boolean) выражения XPath вычисляются либо в истину (true), либо в ложь (false), и обычно они используются только в предикатах. Для чисел ноль принимается за ложь, другие значения — за истину. Пустая строка, "", также считается ложью, все остальные
Применение осей XPath
Применение осей XPath К этому моменту мы рассмотрели три части шагов расположения — ось, условие узла и предикат. Вы должны быть знакомы с этими элементами по проделанной нами работе с образцами выбора, но обратите внимание на ось в предыдущем примере — preceding-sibling. До сих пор
Сокращенный синтаксис XPath
Сокращенный синтаксис XPath Сокращения синтаксиса XPath могут быть весьма удобными. Ниже приведены правила:• self::node() может быть сокращено как .;• parent::node() может быть сокращено как ..;• child::childname может быть сокращено как childname;• attribute::childname может быть сокращено как
Проверка выражений XPath
Проверка выражений XPath В пакет Xalan входит удобная программа-пример, ApplyXPath.java, позволяющая применить выражение XPath к документу и посмотреть на результат, что очень помогает при тестировании. Для запуска этого примера вам нужно будет скомпилировать ApplyXPath.java в ApplyXPath.class при
XPath 2.0
XPath 2.0 XPath находится в стадии обновления, и в него включаются средства поддержки XSLT 2.0 (см. www.w3.org/TR/xpath20req). Задачи XPath 2.0 следующие:• упрощение операций с содержимым типов, поддерживаемых схемой XML;• упрощение операций со строковым содержимым;• поддержка соответствующих
Изменения в XPath 2.0
Изменения в XPath 2.0 Разрабатываемая версия языка XPath, вследствие интеграции с XQuery, очевидно, претерпит серьезные изменения. Новая спецификация уже сейчас разбита на два документа: документ, описывающий модель данных и документ, описывающий функции и операторы. Поэтому на