|
Home >Online Product Documentation >Table of Contents >Supported Axes Supported AxesThe XPath processor supports all XPath axes:
l child
l parent
l ancestor
l self About the child AxisThe child axis contains the children of the context node. The following examples select the book children of the context node: If the context node is the bookstore element, each of these queries return the book elements in bookstore.xml. When you do not specify an axis, the child axis is assumed. About the descendant AxisThe descendant axis contains the descendants of the context node. A descendant is a child or a child of a child, and so on. The descendant axis never contains attribute nodes. The following example selects the first-name element descendants of the context node: If the context node is the bookstore element, this query returns all first-name elements in the document. If the context node is the first publication element, this query returns the first-name element that is in the publication element. About the parent AxisThe parent axis contains the parent of the context node, if there is one. The following example selects the parent of the context node if it is a title element: If the first title element in bookstore.xml is the context node, this query returns the first book element. Note that dot dot (..) is equivalent to parent::node(). About the ancestor AxisThe ancestor axis contains the ancestors of the context node. The ancestors of the context node consist of the parent of the context node and the parent's parent, and so on. The ancestor axis always includes the root node, unless the context node is the root node. The following example selects the book ancestors of the context node: If the context node is the first title element in bookstore.xml, this query returns the first book element. About the following-sibling AxisThe following-sibling axis contains all the siblings of the context node that come after the context node in document order. If the context node is an attribute node or namespace node, the following-sibling axis is empty. The following example selects the next book sibling of the context node: If the context node is the first book element in bookstore.xml, this query returns the second book element. About the preceding-sibling AxisThe preceding-sibling axis contains all the siblings of the context node that precede the context node in reverse document order. If the context node is an attribute node or namespace node, the preceding-sibling axis is empty. The following example selects the closest previous book sibling of the context node: If the context node is the third book element in bookstore.xml, this query returns the second book element. If the context node is the first book element, this query returns the empty set. About the following AxisThe following axis contains the nodes that follow the context node in document order. This can include
l Following siblings of the context node
l Descendants of following siblings of the context node
l Following siblings of ancestor nodes
l Descendants of following siblings of ancestor nodes
The following axis never includes
l Ancestors or descendants of the context node
l Attribute nodes
l Namespace nodes
The following example selects the book elements that are following siblings of the context node and that follow the context node in document order: If the context node is the first book element, this query returns the last three book elements. If the context node is the second book element, this query returns only the third and fourth book elements. About the preceding AxisThe preceding axis contains the nodes that precede the context node in reverse document order. This can include:
l Preceding siblings of the context node
l Descendants of preceding siblings of the context node
l Preceding siblings of ancestor nodes
l Descendants of preceding siblings of ancestor nodes
The preceding axis never includes
l Ancestors or descendants of the context node
l Attribute nodes
l Namespace nodes
The following example selects the book elements that are preceding siblings of the context node and that precede the context node in document order: If the third book element is the context node, this query returns the first two book elements. If the first book element is the context node, this query returns the empty set. About the attribute AxisThe attribute axis contains the attributes of the context node. The attribute axis is empty unless the context node is an element. The following examples are equivalent. They both select the style attributes of the context node. The at sign (@) is an abbreviation for the attribute axis. If the context node is the second book element, this query returns a style attribute whose value is textbook. About the namespace AxisThe namespace axis contains the namespace nodes that are in scope for the context node. This includes namespace declaration attributes for the
l Context node
l Ancestors of the context node
If more than one declaration defines the same prefix, the resulting node set includes only the definition that is closest to the context node. If the context node is not an element, the namespace axis is empty. For example, if an element is in the scope of three namespace declarations, its namespace axis contains three namespace declaration attributes. About the self AxisThe self axis contains just the context node itself. The following example selects the context node if it is a title element: Note that dot (.) is equivalent to self::node(). About the descendant-or-self AxisThe descendant-or-self axis contains the context node and the descendants of the context node. The following example selects the first-name element descendants of the context node and the context node itself if it is a first-name element: If the context node is the first-name element that is in the author element in the second book element, this query returns just the context node. If the context node is the second book element, this query returns the two first-name elements contained in the second book element. Note that // is equivalent to descendant-or-self::node(), while //name is equivalent to descendant-or-self::node()/child::name. About the ancestor-or-self AxisThe ancestor-or-self axis contains the context node and the ancestors of the context node. The ancestor-or-self axis always includes the root node. The following example selects the author element ancestors of the context node and the context node itself if it is an author element: If the context node is the award element in the first book element, this query returns the first author element. |