Книга: XSLT
Примеры путей расположения
Примеры путей расположения
Мы изучили достаточно теории путей расположения. Но, понятно, лучше всего осваивать этот материал на примерах, поэтому я привожу следующий список примеров путей расположения (сокращенные варианты рассматриваются после этого списка):
• child::PLANЕТ
. Возвращает дочерние элементы <PLANЕТ>
контекстного узла;
• child::text()
. Возвращает все дочерние текстовые узлы контекстного узла;
• child::node()
. Возвращает всех детей контекстного узла;
• attribute::UNIT
. Возвращает атрибут UNIT
контекстного узла;
• descendant::PLANET
. Возвращает все элементы-потомки <PLANET>
контекстного узла;
• ancestor::PLANET
. Возвращает всех предков <PLANET>
контекстного узла;
• ancestor-or-self::PLANET
. Возвращает предков <PLANET>
контекстного узла. Если контекстным узлом тоже является <PLANET>
, возвращает также контекстный узел;
• descendant-or-self::PLANET
. Возвращает элементы-потомки <PLANET>
контекстного узла. Если контекстным узлом тоже является <PLANET>
, возвращает также контекстный узел;
• self::PLANET
. Возвращает контекстный узел, если им является элемент <PLANET>
;
• child::PLANET/descendant::NAME
. Возвращает элементы-потомки <NAME>
дочерних элементов <PLANET>
контекстного узла;
• child::*/child::PLANET
. Возвращает всех внуков <PLANET>
контекстного узла;
• /
. Возвращает корневой узел;
• /descendant::PLANET
. Возвращает все элементы <PLANET>
в документе;
• /descendant::PLANET/child::NAME
. Возвращает все элементы <NAME>
с родителем <PLANET>
в документе;
• child::PLANET[position()=3]
. Возвращает третьего ребенка <PLANET>
контекстного узла;
• child::PLANET[position()=last()]
. Возвращает последнего ребенка <PLANET>
контекстного узла;
• /descendant::PLANET[position() = 3]
. Возвращает третий элемент <PLANET>
в документе;
• child::PLANETS/child::PLANET[position()=4]/child::NAME[position()=3]
. Возвращает третий элемент <NAME>
четвертого элемента <PLANET>
элемента <PLANETS>
;
• child::PLANET[position()>3]
. Возвращает всех детей <PLANET>
контекстного узла после первых трех;
• preceding-sibling::NAME[position()=2]
. Возвращает второй предыдущий элемент-брат <NAME>
контекстного узла;
• child::*[self::NAME or self::MASS]
. Возвращает детей <NAME>
и <MASS>
контекстного узла.
• child::*[self::NAME or self::MASS][position()=last()]
. Возвращает последнего ребенка <NAME>
или <MASS>
контекстного узла.
Как видите, синтаксис некоторых выражений достаточно запутан, и набирать их также довольно долго. Но, как и для образцов, существует сокращенная форма синтаксиса XPath.
- Изучаем XPath
- Типы данных XPath
- Создание путей расположения XPath
- Шаги расположения XPath, часть 1: оси
- Шаги расположения XPath, часть 2: условия узлов
- Шаги расположения XPath, часть 3: предикаты
- Применение осей XPath
- Применение оси ancestor
- Применение оси ancestor-or-self
- Применение оси descendant
- Применение оси descendant-or-self
- Применение оси following
- Применение оси following-sibling
- Применение оси namespace
- Применение оси parent
- Применение оси preceding
- Применение оси preceding-sibling
- Применение оси self
- Примеры путей расположения
- Сокращенный синтаксис XPath
- Проверка выражений XPath
- XPath 2.0
- Примеры получения статистики
- Примеры
- Датчик расположения и другие датчики
- 4.11.2. Примеры добавления ipchains-правил
- 4.11.3. Примеры удаления ipchains-правил
- 4.12.3. Примеры конфигурирования iptables
- Примеры концептуальных положений и целей проекта
- Примеры творческих промоакций
- Таблица 14.1. Примеры имен файлов в результате задания правил форматирования
- Какие плюсы и минусы есть у этих путей развития?
- Приложение I. Примеры сценариев
- Примеры администраторов ресурсов