Versions Compared

Key

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

...

Below are some examples of most common scenarios for XML path expressions.

 

Code Block
languagejsxml
linenumberstrue
<?xml version="1.0"?>
<catalog>
   <book id="book1">
      <author>Author Name 1</author>
      <title>Book Title 1</title>
      <genre>Book Genre</genre>
      <price>50</price>
      <publish_date>2010-11-01</publish_date>
      <description>Book Description...</description>
   </book>
   <book id="book2">
      <author>Author Name 2</author>
      <title>Book Title 2</title>
      <genre>Book Genre</genre>
      <price>15</price>
      <publish_date>2010-12-13</publish_date>
      <description>Book Description ...</description>
   </book>
</catalog>

...

  1. Accessing Node Attribute (Id of first book)
    1. XPath Expression: /catalog/book[1]/@id
    2. Value: book1
  2. Accessing Node Text Content (Author of first book)
    1. XPath Expression: /catalog/book[1]/author/text()
    2. Value: Author Name 1

Now, if you are having XML namespaces defined in the XML file as below:

Code Block
languagexml
linenumberstrue
<?xml version="1.0" encoding="utf-8"?>
<sample>
  <hello:table xmlns:table="http://example.com/hello">
    <tr>
      <td>Hello world!!!!</td>
    </tr>
  </hello:table>
</sample>

In the above XML, to access the td element, you may provide the below XPath expressions:

  1. /sample/*[local-name()='table' and namespace-uri()='http://example.com/hello']/tr/td/text()
  2. /sample/*[local-name()='table']/tr/td/text()