Шаги с использованием фильтров
Шаги с использованием фильтров имеют следующий синтаксис:
первичное-выражение[предикат]
Необязательный предикат в этом выражении имеет тот же смысл, что и при использовании осей поиска, а первичное-выражение может быть одним из следующих видов:
· числовой литерал (литерал типа xs:integer, xs:decimal или xs:double);
· строковый литерал (литерал типа xs:string);
· ссылка на переменную (имя переменной, перед которым стоит символ "$");
· вызов функции.
Первичные выражения могут содержать также произвольное выражение, содержащее приведенные выше виды данных. При необходимости отдельные компоненты выражения могут быть заключены в скобки (для изменения приоритета выполнения операций).
В предикатах с использованием фильтров может использоваться выражение контекстного элемента – символ ".". Контекстный элемент может быть либо узлом, либо атомарным выражением.
Примеры использования фильтров:
1. (11 to 20)[6] – выбирает шестой элемент (число 16) в последовательности от 11 до 20.
2. (11 to 20)[. mod 2 eq 1] – выбирает нечетные элементы последовательности от 11 до 20 (числа 11, 13, 15, 17 и 19).
3. $header-node[fn:position() = (1 to 3)] – выбирает первые три элемента последовательности в переменной $header-node.
4. fn:doc("email.xml")/fn:root("header") – выбирает корневой элемент для элемента header в документе email.xml.
5. $header-node/comment() – выбирает узлы комментариев для последовательности в переменной $header-node.
Дата добавления: 2015-03-19; просмотров: 524;