КаталогИндекс раздела
НазадСодержаниеВперед

Сокращенный синтаксис для выражений маршрута

XQuery обеспечивает сокращенный синтаксис для выражения осей в выражениях маршрута.

Следующая таблица описывает сокращенный синтаксис для выражений маршрута.

Таблица 1. Сокращенный синтаксис для выражений маршрута

Сокращенный синтаксис Описание Примеры
ось не задана Сокращение для child::, кроме случая, когда шаг адресации задаетattribute() для проверки узла. Если шаг адресации задает проверку атрибута, опущенная ось является сокращением для attribute::. The выражение маршрута section/para является сокращением для child::section/child::para. The выражение маршрута section/attribute() является сокращением для child::section/attribute::attribute().
@ Сокращение для attribute::. The выражение маршрута section/@id является сокращением для child::section/attribute::id.
// Сокращение для /descendant-or-self::node()/, кроме случая, когда это сокращение появляется в начале выражения маршрута. Когда это сокращение появляется в начале выражения маршрута, шаг адресации выбирает как начальный узел последовательность, которая содержит корень дерева, в котором находится контекстный узел, плюс все потомки этого корня. Это выражение возвращает ошибку, если корневой узел не является узлом документа. Выражение маршрута div1//para является сокращением для child::div1/descendant-or-self::node()/child::para .
.. Сокращение для parent::node(). The выражение маршрута ../title является сокращением для parent::node()/child::title .

Примеры сокращенного и несокращенного синтаксиса

Следующая таблица представляет примеры сокращенного и несокращенного синтаксиса.

Таблица 2. Несокращенный синтаксис и сокращенный синтаксис

Сокращенный синтаксис
Несокращенный синтаксис Результат
child::para para Выбирает элементы para, которые являются дочерними элементами контекстного узла.
child::* * Выбирает все элементы которые являются дочерними элементами контекстного узла.
child::text() text() Выбирает все текстовые элементы которые являются дочерними элементами контекстного узла.
child::node() node() Выбирает все дочерние элементы контекстного узла. Это выражение не возвращает узлы атрибутов, поскольку атрибуты не являются дочерними элементами узла.
attribute::name @name Выбирает атрибут name контекстного узла.
attribute::* @* Выбирает Selects all of the attributes of the контекстный узел.
child::para[fn:position() = 1] para[1] Выбирает первый элемент para, который является дочерним элементом контекстного узла.
child::para[fn:position() = fn:last()] para[fn:last()] Выбирает последний элемент para, который является дочерним элементом контекстного узла.
/child::book/child::chapter[fn:position() = 5] /child::section[fn:position() = 2] /book/chapter[5]/section[2] Выбирает второй элемент section из пятого элемента chapter в элементе book, предком которого является документный узел, контекстный узел.
child::para[attribute::type="warning"] para[@type="warning"] Выбирает все дочерние элементы para контекстного узла, которые имеют атрибут type со значением warning.
child::para[attribute::type='warning'] [fn:position() = 5] para[@type="warning"][5] Выбирает пятый дочерний элемент para контекстного узла, который имеет атрибут type со значением warning.
child::para[fn:position() = 5] [attribute::type="warning"] para[5][@type="warning"] Выбирает пятый дочерний элемент para контекстного узла, если дочерний элемент имеет атрибут type со значением warning.
child::chapter[child::title='Introduction'] chapter[title="Introduction"] Выбирает дочерний элемент chapter контекстного узла, который имеет один или более дочерних элементов title, значение которых эквивалентно строке Introduction.
child::chapter[child::title] chapter[title] Выбирает дочерний элемент chapter контекстного узла, который имеет или более дочерних элементов title.

НазадСодержаниеВперед
КаталогИндекс раздела