Книга: Технология XSLT
Операции сравнения
Операции сравнения
XPath позволяет сравнивать числа при помощи операторов, перечисленных в табл. 6.4.
Таблица 6.4. Операторы сравнения
Оператор | Значение |
---|---|
= |
Равно |
!= |
Не равно |
< |
Меньше |
> |
Больше |
<= |
Меньше или равно (не больше) |
>= |
Больше или равно (не меньше) |
XPath-выражения чаще всего используются в значениях атрибутов, символ "<
" в которых в соответствии с синтаксисом XML использовать нельзя. Поэтому операторы сравнения "меньше" ("<
") и "не больше" ("<=
") нужно записывать с использованием сущностей. Оператор "меньше" может быть записан как "<
;", а оператор "не больше" как "<=
".
Пример
Результатом обработки элемента
<xsl:value-of select="1<2"/>
будет строка "true
".
Сравнение всегда требует наличия двух операндов числового типа. Если операнды не являются числами, они будут соответствующим образом преобразованы.
В XPath вполне корректным будет выражение вида A > B > C
. Однако результат его будет довольно неожиданным. В XPath действует правило левой ассоциативности операторов сравнения, поэтому A > B > C
будет равносильно (А > B) > C
. То есть A
будет сравнено с B, затем результат, истина или ложь, будет преобразован в числовой тип (получится 1
или 0
) и затем сравнен со значением C
.
Пример:
3 > 2 > 1
? (3 > 2) > 1
? 1 > 1
? false
?
3 > 2 > 0 (3 > 2) > 0
? 1 > 0
? true
Неравенствам в XPath соответствует продукция RelationalExpr
:
[XP24] RelationalExpr ::= AdditiveExpr
| RelationalExpr '<' AdditiveExpr
| RelationalExpr '>' AdditiveExpr
| RelationalExpr '<=' AdditiveExpr
| RelationalExpr '>=' AdditiveExpr
Операции "равно" и "не равно" записываются при помощи продукции
EqualityExpr:
[XP23] EqualityExpr ::= RelationalExpr
| EqualityExpr '=' RelationalExpr
| EqualityExpr '!=' RelationalExpr
- Операции с множествами узлов
- 2. Унарные операции на языке структурированных запросов
- Операции отношения
- Операции с полями BLOB
- Конструкции выбора решений и операции сравнения
- 7.3. Операции сравнения
- Пример 7-5. Операции сравнения
- 33.3. Операции сравнения: Альтернативные решения
- 2.2.1 Операции сравнения
- 4. Лекция: Типы данных