XML XPath

What is XPath?

To navigate through elements and attributes in an XML document, XPath is used as a major element in the XSLT standard which contains a library of standard functions. It is a syntax for defining parts of an XML document that uses path expressions to navigate in XML documents. Along with being a major element in XSLT and XQuery, XPath is also a W3C recommendation.

XPath Path Expressions:

To select nodes or node-sets in an XML document, XPath uses path expressions that look similar to the expressions we see when we work with a traditional computer file system. Along with JavaScript, Java, XML Schema, PHP, Python, C and C++, XPath expressions can be used in a lot of other languages too.

XPath is used in XSLT:

Being a major element in the XSLT standard, XPath knowledge allows us to take great advantage of XSL.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
 
  <book category="Child">
    <title lang="en">ABC</title>
    <author>Author Name</author>
    <year>2020</year>
    <price>100.00</price>
  </book>
 
  <book category="IT">
    <title lang="en">XQuery Book</title>
    <author>Author 1</author>
    <author>Author 2</author>
    <author>Author 3</author>
    <author>Author 4</author>
    <year>2004</year>
    <price>350.00</price>
  </book>
 
</bookstore>

XPath expressions and the result of the expressions:

Below we are listing some XPath expressions and the result of the expressions:

XPath Expression Result
/bookstore/book[1] The first book element is selected which is the child of the bookstore element.
/bookstore/book[last()] The last book element is selected which is the child of the bookstore element.
/bookstore/book[last()-1] The last but one book element is selected which is the child of the bookstore element.
/bookstore/book[position()<3] The first two book elements are selected which are children of the bookstore element.
//title[@lang] All the title elements are selected which have an attribute named lang.
//title[@lang=’en’] All the title elements are selected which have a “lang” attribute with a value of “en”.
/bookstore/book[price>100.00] All the book elements of the bookstore element are selected which have a price element with a value greater than 100.00.
/bookstore/book[price>100.00]/title All the title elements of the book elements of the bookstore element are selected which have a price element with a value greater than 100.00.
Please Share