The notation E[P]
is used to select items from the sequence obtained by evaluating
E
. If the predicate P
is numeric, the predicate selects an item if its
position (counting from 1) is equal to P
; otherwise, the effective boolean value
of P
determines whether an item is selected or not. The effective boolean value of a sequence
is false if the sequence is empty, or if it contains a single item that is one of: the boolean value
false, the zero-length string, or a numeric zero or NaN value. Otherwise, the effective boolean
value is true.
In XPath 2.0, E
may be any sequence, it is not restricted to a node sequence. Within
the predicate, the expression .
(dot) refers to the context item, that is, the item
currently being tested. The XPath 1.0 concept of context node has thus been generalized, for example
.
can refer to a string or a number.
Generally the order of items in the result preserves the order of items in E
. As a
special case, however, if E
is a step using a reverse axis (e.g. preceding-sibling), the
position of nodes for the purpose of evaluating the predicate is in reverse document order, but the
result of the filter expression is in forwards document order.