Сравнения
Чтобы сравнить два объекта XPath, используйте символ =
для проверки равенства или символ !=
для проверки неравенства.
Для операций сравнения необходимо использовать только два операнда. Сравнения выполняются путем оценки каждого операнда и при необходимости их преобразования в одинаковый тип. Это выполняется в соответствии с процессом, описанным ниже в разделе «Очередность выполнения для сравнений».
Все элементы и атрибуты являются строками, но они автоматически приводятся к целочисленным значениям при сравнении чисел. В ходе операций сравнения литеральные числовые значения приводятся к длинным или двойным типам, как показано в следующей таблице.
Дополнительные сведения о <
и других двоичных операторах сравнения см. в разделе «Бинарные операторы сравнения» ниже.
Литеральный тип | Сравнение | Пример |
---|---|---|
String |
|
|
Integer |
|
|
Real |
|
|
Одинарные или двойные кавычки используются для разделителя строк в выражениях. Это облегчает конструирование и передачу шаблонов в языках скриптов.
Дополнительные сведения о выполнении сравнений с помощью языка XPath см. в разделе 3.4 («Логические значения») в документе «Язык XPath версии 1.0 (рекомендации консорциума W3C от 16 ноября 1999 г.)» по адресу www.w3.org/TR/xpath.
Примеры
Выражение | Ссылается на |
---|---|
|
Все элементы |
|
Все элементы |
|
Все элементы |
|
Все элементы |
|
Все элементы |
Очередность выполнения для сравнений
Сравнения подчиняются очередности выполнения по типам данным.
Если хотя бы один операнд является логическим, каждый операнд сначала преобразуется в логическое значение.
В противном случае, если хотя бы один операнд является числовым, каждый операнд сначала преобразуется в числовое значение.
В противном случае, если хотя бы один операнд является датой, каждый операнд сначала преобразуется в дату.
В противном случае оба операнда сначала преобразуются в строковые значения.
Двоичные операторы сравнения
Набор двоичных операторов сравнения сравнивает числовые значения и возвращает логические результаты. Операторы <
, <=
, >
и >=
используются соответственно для обозначения логического «меньше чем», «меньше или равно», «больше чем» и «больше или равно». Одинарные или двойные кавычки используются для разделителя строк в выражениях. Это облегчает конструирование и передачу шаблонов в языках скриптов.
Обратите внимание, что эти операторы сравнения работают только с численными значениями. Можно сравнивать строки на предмет равенства, но, если нужно сравнить строки для того, чтобы определить, которая из них стоит раньше в порядке сортировки, необходимо использовать функции Функция расширений XPath (Майкрософт).
Примеры
Выражение | Ссылается на |
---|---|
|
Все элементы |
|
Все элементы |
|
Первые три (1, 2, 3) элемента |
Пример
XML-файл (test.xml)
XSLT-файл (test.xsl)
Следующая таблица стилей XSLT выбирает все элементы <x>
, стоящие раньше своих одноуровневых элементов в порядке документа.
Форматированный вывод
Преобразование, примененное к указанному выше XML-файлу, выдает следующий результат.
<x a="1">
<x a="2" b="B">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
</x>
<x a="2" b="B">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
<x>
<y>y31</y>
<y>y32</y>
</x>