Валиков Алексей Н.
Шрифт:
Операции с булевыми значениями
XPath поддерживает только две логические операции —
Логические операторы в XPath бинарны, то есть требуют два операнда булевого типа. Если операнды имеют другой тип, то они будут приведены к булевым значениям.
Логические вычисления в XPath абсолютно стандартны. Мы приведем их для справки в табл. 6.2.
Таблица 6.2. Вычисление логических выражений
Значение | Выражение | ||
---|---|---|---|
A | B | A or В | A and В |
false | false | false | false |
false | true | true | false |
true | false | true | false |
true | true | true | true |
Как и во многих других языках, операция "и" (
Приведем синтаксические правила продукций логических операций XPath. Операции "или" соответствует продукция
Операции с числами
Перечень арифметических операций в XPath довольно ограничен. К ним относится сложение, вычитание, умножение, деление и унарная операция отрицания, которая меняет значение операнда на противоположное. Кроме того, числа можно сравнивать при помощи операторов сравнения.
Арифметические операции
Арифметические операции XPath сведены в табл. 6.3.
Таблица 6.3. Арифметические операции в XPath-выражениях
Операция | Синтаксис |
---|---|
Сложение | A + B |
Вычитание | A - B |
Умножение | A * B |
Деление | A div B |
Остаток деления | A mod B |
Унарное отрицание | – A |
Если операнды, значения, участвующие в операции, не являются числами, они сначала приводятся к этому типу, а уж затем производится операция. Например, можно легко перемножать литералы:
Арифметические действия в XPath работают, что называется, "как обычно", то есть совершенно стандартным образом. Арифметика XPath основывается на стандарте IEEE 754, который был использован и в других распространенных языках программирования, например в Java. Пожалуй, следует лишь обратить внимание на операторы деления, поскольку в разных языках они означают разные действия и потому легко запутаться.
Оператор
Примеры:
Оператор
Оператор mod аналогичен оператору "
Результат остатка от деления имеет тот же знак, что и делимое. Этот факт можно использовать для того, чтобы выполнять деление без остатка, например число
Пример: