Skip to main content Skip to complementary content

XPath

This section describes XPath expressions that you can use with Talend Cloud API Tester.

For more information on the XPath syntax, see the official W3C specification. You can also find an online XPath evaluator on the Free Formatter website. Note that XPath expressions have a directory-path-like syntax.

Here are a few tips to help you work with XML payloads:

  • A single / selects from the root node.
  • /list identifies the "list object" at the top level of the XML document. Then you can iterate over attributes and sub attributes. The language natively supports arrays.
  • The slash sign / allows you to get attributes of an object or to go deeper in the tree.
  • The square brackets [] enable to select a specific item in an array by its position. Please note that the index starts from 1.
  • /text() allows you to get a node inner text.
  • // selects nodes in the document from the current node that match the selection no matter where they are.

Sample XPath expressions

  <?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>

  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>

  <book category="web">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>

  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

Here are some sample expressions and their result.

Expression Value
/ The whole document node
/bookstore The bookstore node
/bookstore/book/title An array of all title nodes of all book nodes under the bookstore element
//title An array of all title nodes whatever their position is
//title/@lang An array of all lang attributes of the title nodes
/bookstore/book/title/text() An array of all text values of title nodes of all "book" nodes under the bookstore element
/bookstore/book[price>35]/title The title nodes of all book nodes having price greater than 35
//book[last()]/title The title node of the last book node
//book[position() < 3] The first two book nodes
//title[@lang]] An array of all title nodes with an attribute lang
name(//*[1]) The name of the first element in the document (i.e.: bookstore)
count(//title) The number of all title nodes (i.e.: 4)

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – please let us know!