Примеры путей расположения

We use cookies. Read the Privacy and Cookie Policy

Примеры путей расположения

Мы изучили достаточно теории путей расположения. Но, понятно, лучше всего осваивать этот материал на примерах, поэтому я привожу следующий список примеров путей расположения (сокращенные варианты рассматриваются после этого списка):

• 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.