Аксисы XPath (axis)
- Предыдущая страница Грамматика XPath
- Следующая страница Операторы XPath
Пример XML-документа
Мы будем использовать этот XML-документ в следующих примерах:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
Ось XPath
Ось может определять набор узлов относительно текущего узла.
Название оси | Результат |
---|---|
ancestor | Выберите всех предков текущего узла (родителя, дедушку и т.д.). |
ancestor-or-self | Выберите всех предков текущего узла (родителя, дедушку и т.д.) и сам узел. |
attribute | Выбрать все атрибуты узла |
child | Выбрать все дети узла |
descendant | Выберите всех потомков текущего узла (дочерних, внучатых и т.д.). |
descendant-or-self | Выберите всех потомков текущего узла (дочерних, внучатых и т.д.) и сам узел. |
following | Выберите все узлы после конца тега текущего узла в документе. |
namespace | Выберите все узлы пространства имен текущего узла. |
parent | Выберите родителя текущего узла. |
preceding | Выберите все узлы перед началом тега текущего узла в документе. |
preceding-sibling | Выберите всех同级 узлов перед текущим узлом. |
self | Выберите текущий узел. |
Выражение пути
Путь может быть абсолютным или относительным.
Абсолютный путь начинается с обратной косой черты (/), а относительный путь не таким образом. В обоих случаях путь включает один или несколько шагов, каждый из которых разделен косой чертой:
Абсолютный путь позиции:
/step/step/...
Относительный путь позиции:
step/step/...
Каждый шаг вычисляется на основе узлов в текущем наборе узлов.
Шаг (step) включает:
- Ось (axis)
- Определение деревенских отношений между выбранным узлом и текущим узлом
- Тест узла (node-test)
- Идентификация узлов в рамках оси
- Ноль или более предикатов (predicate)
- Более глубокое уточнение所选ого набора узлов
Грамматика шага:
Имя оси::тест узла[предикат]
Инстанция
Пример | Результат |
---|---|
child::book | Выбрать все дети узлов, принадлежащие текущему узлу |
attribute::lang | Выбрать атрибут lang узла |
child::* | Выбрать все дети узла |
attribute::* | Выбрать все атрибуты узла |
child::text() | Выбрать все текстовые дети узла |
child::node() | Выбрать все дети узла |
descendant::book | Выбрать всех потомков узла book |
ancestor::book | Выбрать всех предков узла book |
ancestor-or-self::book | Выбрать всех предков узла book и текущий узел (если текущий узел является узлом book) |
child::*/child::price | Выбрать все дети узла price текущего узла. |
- Предыдущая страница Грамматика XPath
- Следующая страница Операторы XPath