Примеры путей доступа

Следующий пример иллюстрирует применение путей доступа.

Путь Описание

child::node()

Выбирает всех потомков узла контекста независимо от их типа узла.

attribute::name

Выбирает атрибут name узла контекста.

attribute::*

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

descendant::para

Выбирает потомков элемента <para> узла контекста.

ancestor::div

Выбирает всех предков элемента <div> узла контекста.

ancestor-or-self::div

Выбирает предков элемента <div> узла контекста и, если узлом контекста является элемент <div>, также выбирает узел контекста.

descendant-or-self::para

Выбирает потомков элемента <para> узла контекста и, если узлом контекста является элемент <para>, также выбирает узел контекста.

self::para

Выбирает узел контекста, если им является элемент <para>, в противном случае не выбирает ничего.

child::chapter/descendant::para

Выбирает потомков элемента <para>, являющихся дочерними элементами элемента <chapter> узла контекста.

child::*/child::para

Выбирает все элементы, являющиеся внуками элемента <para> узла контекста.

/

Выбирает корень документа (который всегда является родителем элемента документа).

/descendant::para

Выбирает все элементы <para> в документе узла контекста.

/descendant::olist/child::item

Выбирает все элементы <item>, для которых родительским является элемент <olist> и которые расположены в том же документе, что и узел контекста.

child::para[position()=1]

Выбирает первого потомка элемента <para> узла контекста.

child::para[position()=last()]

Выбирает последнего потомка элемента <para> узла контекста.

child::para[position()=last()-1]

Выбирает предпоследнего потомка элемента <para> узла контекста.

child::para[position()&gt;1]

Выбирает всех потомков элемента <para> узла контекста, за исключением первого потомка элемента <para> узла контекста.

/descendant::figure[position()=42]

Выбирает сорок второй элемент <figure> в документе.

/child::doc/child::chapter[position()=5]/child::section[position()=2]

Выбирает второй элемент <section>, содержащийся в пятом элементе <chapter> элемента документа <doc>.

child::para[attribute::type="warning"]

Выбирает всех потомков элемента <para> узла контекста, содержащих атрибут type со значением "warning".

child::para[attribute::type="warning"][position()=5]

Выбирает пятого потомка элемента <para> узла контекста, содержащего атрибут type со значением "warning".

child::para[position()=5][attribute::type="warning"]

Выбирает пятого потомка элемента <para> узла контекста, если этот потомок содержит атрибут type со значением "warning"..

child::chapter[child::title="Introduction"]

Выбирает потомков элемента <chapter> узла контекста, которые содержат одного или более потомков элемента <title> со строковым значением равным Introduction.

child::chapter[child::title]

Выбирает потомков элемента <chapter> узла контекста, которые содержат одного или более потомков элемента <title>.

child::*[self::chapter or self::appendix]

Выбирает элемент <chapter> и потомков элемента <appendix> узла контекста.

child::*[self::chapter or self::appendix][position()=last()]

Выбирает последний элемент <chapter> либо потомка элемента <appendix> узла контекста.

См. также

Справочник

Примеры XPath