XPath Syntax Quick Reference

This topic provides a quick reference for XPath expression syntax.

Axes

XPath provides the following axes:

  • ancestor
  • ancestor-or-self
  • attribute
  • child
  • descendant
  • descendant-or-self
  • following
  • following-sibling
  • namespace
  • parent
  • preceding
  • preceding-sibling
  • self

Node Tests

XPath provides the following node tests:

  • * selects all nodes of the specified name. For the attribute axis, attributes are selected. For the namespace axis, namespace nodes are selected. For all other axes, element nodes are selected.
  • comment() selects all comment nodes.
  • element_name selects all element_name nodes.
  • node() selects all nodes.
  • processing-instruction(["some_literal "]) selects all processing instructions. If some_literal is specified, processing-instruction() selects all processing instructions with some_literal as their name.
  • text() selects all text nodes.

Filters

A filter specifies a constraint on a node set with respect to an axis to produce a new node set.

Location Steps

A location step has the following format:

AxisSpecifier
              ::NodeTest
              [Filter
              ][Filter
              ]...
               

            

XPath Expression

An XPath expression has one of the following formats:

LocationStep[/LocationStep]...
               
FunctionCall()[Filter]/LocationStep[/LocationStep]...
               
(Expression)[Filter]/LocationStep[/LocationStep]...
               

            

A function call or an XPath expression in parentheses can appear only at the very beginning of an XPath expression. An expression in parentheses always returns a node set. Any function that appears at the beginning of an XPath location step expression must return a node set.

 
Free Stylus Studio XML Training:
W3C Member