Xpath

XPath (XML Path Language) is a terse (non-XML) syntax for addressing portions of an XML document. Originally motivated by a desire to provide a common syntax and behavior model between XPointer and XSL, XPath has rapidly been adopted by developers as a small query language.

Notation

The notation is compact, suitable for expressing within XML attributes. It assumes a simple URI like syntax. A typical XPath expression is a Location Path consisting of a string of element or attribute qualifiers separated by forward slashes ("/"), similar in appearance to a file system path. XPath also allows built-in functions, filters, bound variable access, and axis specifiers. Location Paths are divided into Steps, each of which has three components:
  • Axis Specifier
  • Node Test
  • Predicate
An Axis Specifier indicates the kind of information which will be selected. For instance, child:: is the unabbreviated axis specifier for element children. For many XPath expressions, the axis specifier is omitted allowing it to default to child::. A common abbreviated axis specifier is a commercial "at" sign ("@"), which represents attributes. A Node Test limits the specific elements or attributes which will be addressed. A common form of node test is a name test which is the name of an element or an attribute. Predicates are used to filter out, or exclude, certain nodes on the basis of more complex expressions. Predicates are introduced using a square-bracket (""") syntax.

Functionality and usage

XPath further defines a library of standard functions for working with strings, numbers and Boolean expressions, as well as supporting a number of utility operators. The following is by no means an exhaustive list but is nevertheless illustrative of the range of functionalities and operators.
  • Wildcards (*) may be used to select elements in an XML which may be unknown.
  • The use of square brackets [] may be used to qualify a particular element.
  • Multiple paths are supported by use of the | operator.
  • Attributes are defined by the @ prefix.
  • Numerical operations supported include: addition (+), subtraction (-), multiplication (*), division (div), and modulus (mod).
  • Equality tests can be performed by use of the like (=) and not like (!=) operators.
  • Example Functions include
    • Nodeset functions:
      • count() - counts the items in a nodeset
      • id () - selects elements by their id
      • name() - returns a node's name
    • String functions:
      • normalize-space() - strips trailing and leading whitespace
      • substring()
      • string-length()

Examples

An exhaustive set of examples is beyond the scope of this article. Some typical XPath expressions which might be used in an XSL context are:
  • The Root element: /*
  • All elements everywhere (implementations of this expression can be very slow): //*
  • All Top Level Elements (children of Root): /*/*
  • The fifth child element under an element named "FOOB": FOOB5
  • The element FOOB whose BAZ attribute is "untrue": FOOB= "untrue"

See also

External link

 

<< PreviousWord BrowserNext >>
biosafety
safe trade
biosecurity
hogwarts express
de bruijn newman constant
blue green alliance
infinite loop
military fiat
ecology movement
peace movement
ngo
cuthbert
arthur sullivan
indigenous peoples
bonobo
w. s. gilbert
natural capitalism
cuthbert of lindisfarne
atmospheric reentry
1240s bc
thread
santa rosalia
thread (computer science)
clifford algebra
kyzyl kum
quantum leap
qattara depression
cultural revolution
quadruple alliance
qarshi
history of jordan
list of football (soccer) players
flange
rudolph i of germany
albus dumbledore
british shorthair
hogwarts
usc
orange county, california
gresham's law
magna graecia
european language council
pope paschal i
nash equilibrium