Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

XPath

...

XPath is the XML Path Language which uses a "path like" syntax to browse through elements and attributes in an XML document.
It contains over 200 built-in functions for such as string values, numeric values, booleans, date and time comparison, node manipulation, sequence manipulation, and much more. XPath expressions can also be used in JavaScript, Java, XML Schema, PHP, Python, C and C++, and lots of other languages. 

In XPath, there are seven kinds of nodes: element, attribute, text, namespace, processing-instruction, comment, and document nodes.
XML documents are treated as trees of nodes. The topmost element of the tree is called the root element.

Selecting Nodes

XPath uses path expressions to select nodes in an XML document. The most useful path expressions are listed below:

...

<bookstore>
  <book>
    <title lang="en">A Clockwork Orange</title>
    <author>Anthony Burgess</author>
    <year>1962</year>
    <price>19.99</price>
  </book>
  <book>
    <title lang="en">Nineteen Eighty-Four</title>
    <author>George Orwell</author>
    <year>1949</year>
    <price>14.99</price>
  </book>
</bookstore>

Here are some path expressions and the result of the expressions:

...

Note: If the path starts with a slash ( / ) it always represents an absolute path to an element!

...

Predicates are used to find a specific node or a node that contains a specific value. Predicates are always embedded in square brackets.

In the table below we have listed some path expressions with predicates and the result of the expressions:

...

Note: In IE 5,6,7,8,9 first node is[0], but according to W3C, it is [1]. To solve this problem in IE, set the SelectionLanguage to XPath:

...

Selecting Unknown Nodes

XPath wildcards can be used to select unknown XML nodes.

...

Selecting Several Paths

By using the | operator in an XPath expression you can select several paths.

In the table below we have listed some path expressions and the result of the expressions:

...

XPath Axes

An axis defines a node-set relative to the current node.

...

XPath Operators

Below is a list of the operators that can be used in XPath expressions:

...

For further information on XPath click here

XQuery

XQuery is a language designed to query XML data. It is built on XPath expressions so one that wants to use XQuery must know how to use XPath. 

XQuery grounds on the five expressions whose acronym is FLWOR (pronounced "flower").

  • For - selects a sequence of nodes
  • Let - binds a sequence to a variable
  • Where - filters the nodes
  • Order by - sorts the nodes
  • Return - what to return (gets evaluated once for every node)

With these expressions (not necessarily with all of them) one can query any XML data.

Besides the main features of XQuery there is an extension called XQuery Update Facility which introduces some useful features to XQuery.

The XQuery Update Facility is a relatively small extension of the XQuery language which provides convenient means of modifying XML documents or data. As of March 14, 2008, the XQuery Update Facility specification has become a "Candidate Recommendation", which means it is now pretty stable.

...