Валиков Алексей Н.
Шрифт:
Операции "равно" и "не равно" записываются при помощи продукции
Операции с множествами узлов
Три основные операции с множествами узлов, которые поддерживает язык XPath, — это фильтрация множества, выборка с использованием путей и объединение.
Фильтрация
Множества узлов, которые получаются в результате вычисления выражений, можно фильтровать — то есть выбирать из них узлы, удовлетворяющие заданным свойствам подобно тому, как это делалось предикатами в шагах выборки.
В выражениях множества узлов могут также фильтроваться одним или несколькими предикатами. Узел остается в фильтруемом множестве, только если он удовлетворяет всем предикатам поочередно.
Предположим, что нам нужно оставить в фильтруемом множестве узлов, которое присвоено переменной
Можно использовать и более сложные конструкции, например, фильтровать объединение двух множеств — присвоенного переменной
Выражение, в котором производится фильтрация узлов, отвечает EBNF-правилу
Если раскрыть рекурсию, которая имеется в этом правиле, его можно переписать в более простом виде:
Выражение
Использование в выражениях путей выборки
Помимо того, что выражение само по себе может быть путем выборки, относительные пути можно комбинировать с другими выражениями. Например, можно выбрать все дочерние элементы узлов множества, содержащегося в переменной
Для разделения шагов выборки в фильтрующих выражениях можно использовать операторы "
Здесь
Выражения, которые используют пути выборки, соответствуют продукции
Объединение множеств
Множества могут быть объединены при помощи оператора "
Множество всех элементов
Выражению объединения соответствует продукция
Старшинство операций
Теперь, когда мы изучили все типы операций XPath, можно дать синтаксическое определение выражению и выстроить все операции в порядке старшинства.