Microsoft XML Core Services (MSXML) 5.0 for Microsoft Office - XSLT Reference

Patterns

A pattern is a type of expression that returns a set of nodes based on a set of conditions for a node. Nodes that satisfy the conditions match the pattern. The syntax for patterns is a subset of the syntax for expressions. In particular, location paths that meet certain restrictions can be used as patterns. An expression that is also a pattern always evaluates to an object of type node-set. A node matches a pattern if the node is a member of the result of evaluating the pattern as an expression with respect to some possible context; the possible contexts are those whose context node is the node being matched or one of its ancestors.

The following table lists examples of patterns.

Pattern Matches
Para any para element
* any element
chapter|appendix any chapter element and any appendix element
olist/item any item element with an olist parent
appendix//para any para element with an appendix ancestor element
/ the root node
text() any text node
processing-instruction() any processing instruction
node() any node other than an attribute node and the root node
id("W11") the element with unique ID W11
para[1] any para element that is the first para child element of its parent
*[position()=1 and self::para] any para element that is the first child element of its parent
para[last()=1] any para element that is the only para child element of its parent
items/item[position()>1] any item element that has an items parent and that is not the first item child of its parent
item[position() mod 2 = 1] any item element that is an odd-numbered item child of its parent
div[@class="appendix"]//p any p element with a div ancestor element that has a class attribute with value appendix
@class any class attribute (not any element that has a class attribute)
@* any attribute

See Also

Location Paths