para

*[position()=1 and self::para] соответствует любому элементу para , являющемуся для своего родителя первым непосредственным элементом- потомком

para[last()=1] соответствует любому элементу para , который является для своего родителя единственным непосредственным потомком para

items/item[position()>1] соответствует любому элементу item , который имеет родителя items , но не является для этого родителя первым непосредственным потомком item

item[position() mod 2 = 1] будет иметь значение true для любого элемента item , который является нечетным непосредственным потомком item своего родителя.

div[@class='appendix']//p соответствует любому элементу p , предком которого является элемент div , имеющий атрибут class со значением appendix

@class соответствует любому атрибуту class (но не любому элементу, имеющему атрибут class )

@* соответствует любому атрибуту

Образец должен отвечать грамматике Pattern. Pattern представляет собой набор образцов для путей адресации, разделенных символом |. Образец для пути адресации – это некий путь адресации, на всех шагах которого используются лишь оси child или attribute. Хотя образцы и не должны использовать ось descendant-or-self, в образцах могут использоваться как оператор //, так и оператор /. Образцы путей адресации могут начинаться также с вызова функций id или key с фиксированным аргументом. В предикатах образца могут использоваться произвольные выражения так это происходит в предикатах пути адресации.

Образцы

[1] 

Pattern

::= 

LocationPathPattern

| Pattern '|' LocationPathPattern

[2] 

LocationPathPattern

::= 

'/' RelativePathPattern ?

| IdKeyPattern (('/' | '//') RelativePathPattern )?

| '//'? RelativePathPattern

[3] 

IdKeyPattern

::= 

'id' '(' Literal ')'

| 'key' '(' Literal ',' Literal ')'

[4] 

RelativePathPattern

::= 

StepPattern

| RelativePathPattern '/' StepPattern

| RelativePathPattern '//' StepPattern

[5] 

StepPattern

::= 

ChildOrAttributeAxisSpecifier NodeTest Predicate *

[6] 

ChildOrAttributeAxisSpecifier

::= 

AbbreviatedAxisSpecifier

| ('child' | 'attribute') '::'

Считается что узел соответствует образцу тогда и только тогда, когда есть такой возможный контекст, что если с этим контекстом данный образец обрабатывать как выражение, то этот узел будет среди полученного набора узлов. Когда узел соответствует образцу, то для возможных контекстов используется узел контекста, которому соответствует либо сам этот элемент, либо какой-либо предок этого узла, а контекстный набор узлов содержит только этот узел контекста.

Например, образец p соответствует любому элементу p, потому что если взять любой элемент p и обработать выражение p, используя в качестве контекста родителя элемента p, то одним из членов полученного набора узлов будет этот элемент p .

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату