• +49-(0)721-402485-12
Your experts for XML, XQuery and XML Databases


The components of a XML tree structure are called "nodes". With the help of XPath, all nodes of a XML document can be selected and then processed with XSL. Basically, in XPath one can distinguish between seven different node types:

  • Root node: The root node is not to be equated with the root element. In each XML document both of them appear exactly once, whereby the root node can be considered as virtual parent node of the root element.
  • Element node
  • Attribute node
  • Text node
  • Namespace node
  • Processing instruction node
  • Comment node


XPath uses axes in order to be able to navigate to any direction within the document structure. Eleven of the altogether thirteen different axes allow the navigation through all element nodes of a XML tree. They are named according to family relationships. Whereas the attribute and namespace axes access only certain node types (attribute and namespace nodes of an element).
The initial point of each search in XML documents is referred to as context node. In the following images graphically displaying the first eleven axes available in XPath, this context node is called SELF.

The self axis
The self axis contains the context node itself.

The child axis
The child axis contains the direct descendants of the context node.

The descendant axis
With the descendant axis all descendants of the context node are addressed.

The descendant-or-self axis
The descendant-or-self axis contains all descendants of the context node and the context node itself.

The parent axis
With the parent axis the parent element of the context node is addressed.

The ancestor axis
The ancestor axis contains all ancetors of the context node.

The ancestor-or-self axis
The ancestor-or-self axis covers all ancestors of the context node and the context node itself.

The preceding axis
With the preceding axis all predecessors of the context node are addressed exclusively to its ancestors.

The following axis
The following axis covers all followers of the context node exclusively to its descendants.

The preceding-sibling axis
The preceding-sibling axis covers all nodes having the same parent element as the context node and coming before the context node in the document order.

The following-sibling axis
The following-sibling axis covers all nodes having the same parent element as the context node and following after the context node in the document order.

Not only element nodes

Besides the element nodes already explained, there are also other node types in XML files. The addressing of these special node types will be demonstrated in the next examples. All examples and XPath expressions are applied to the "University.xml" file:

Node type:text
XPath expression:/UNIVERSITY/DEAN/text()
Explanation:By the text() node test, the text (which means the element value)
of the node being addressed is selected.
Result: Meier
Node type:Comment
XPath expression:/UNIVERSITY/ARCHITECTURE/comment()
Explanation:The comment node of the ARCHITECTURE element is
selected with the comment() node test.
Result:<!-- The number may increase in 2013. -->
Node type: All node types except for attributes
XPath expression:/UNIVERSITY/PHILOSOPHY/node()
Explanation:The node() node test selects all node types
except for attributes.
Result:Selection of the philosophy nodes


Also PI nodes (Processing Instructions) may be selected by the processing-instruction() node test.

<< backnext >>