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

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

Path Описание

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