Show/Hide Toolbars

Руководство администратора

С помощью выражений XPath для выбора узлов в документе XML можно выбрать узел, следуя пути или шагам.

Полезные выражения для формирования пути

Выражение

Описание

имя_узла

Выбирает все узлы с именем имя_узла

/

Выбирает от корневого узла

warning_icon   Если путь начинается с косой черты (/), он всегда представляет собой абсолютный путь к элементу!

//

Выбирает все узлы от текущего узла, которые соответствуют выбору, независимо от того, где они находятся

.

Выбирает текущий узел

..

Выбирает родителя текущего узла

@

Выбирает атрибуты

Примеры

bookstore

Выбирает все узлы с именем bookstore

/bookstore

Выбирает корневой элемент

bookstore/book

Выбирает все элементы book, которые являются потомками элемента bookstore

//book

Выбирает все элементы book независимо от того, где они находятся в документе

bookstore//book

Выбирает все элементы book, которые являются потомками элемента bookstore, независимо от того, где они находятся в ветви bookstore

//@lang

Выбирает все атрибуты, которые называются lang

Предикаты

Предикаты используются для поиска специфического узла или узла, который содержит специфическое значение. Предикаты всегда обрамляются квадратными скобками

Пример выражения

Результат

/bookstore/book[1]

Выбирает первый элемент book, который является потомком элемента bookstore

/bookstore/book[last()]

Выбирает последний элемент book, который является дочерним элементом элемента bookstore

/bookstore/book[last()-1]

Выбирает предпоследний элемент book, который является дочерним элементом элемента bookstore

/bookstore/book[position()<3]

Выбор первых двух элементов book, которые являются потомками элемента bookstore

//title[@lang]

Выбирает все элементы title, которые имеют атрибут с именем lang

//title[@lang='en']

Выбирает все элементы title, которые имеют атрибут lang со значением "en"

/bookstore/book[price>35.00]

Выбирает все элементы book после элемента bookstore, которые имеют элемент price со значением больше, чем 35.00

/bookstore/book[price>35.00]/title

Выбирает все элементы title элементов book из элемента bookstore, которые имеют элемент price со значением больше чем 35.00

Выбор неизвестных узлов

Wildcard

Результат

*

Соответствует любому узлу

@*

Соответствует узлу-атрибуту

node()

Соответствует любому узлу любого типа

//*

Выбирает все элементы в документе

Примеры

/bookstore/*

Выбирает все дочерние узлы элемента bookstore

//title[@*]

Выбирает все элементы title, которые имеют по крайней мере один атрибут любого вида

Выбор нескольких путей

Пример пути

Результат

//book/title | //book/price

Выбирает все элементы title И price всех элементов book

//title | //price

Выбирает все элементы title И price в документе

/bookstore/book/title | //price

Выбирает все элементы title элемента book элемента bookstore И все элементы price в документе