XPath beginners are actually very simple

Source: Internet
Author: User

XPath is a language used to search for information in XML documents. XPath is used to navigate through elements and attributes in XML documents.

(My understanding: XPath is a path language used to find XML nodes, and a path string syntax)

XML instance document

We will use this XML document in the following example.

<? XML version = "1.0" encoding = "ISO-8859-1"?>

<Bookstore>

<Book>
<Title lang = "eng"> Harry Potter </title>
<Price> 29.99 </price>
</Book>

<Book>
<Title lang = "eng"> learning XML </title>
<Price> 39.95 </price>
</Book>

</Bookstore>


Select Node

XPath uses path expressions to select nodes in XML documents. Nodes are selected by following the path or step. The most useful path expressions are listed below:

Expression Description
Nodename Select all child nodes of the node.
/ Select from the root node.
// Select the nodes in the document from the current node that matches the selected node, regardless of their location.
. Select the current node.
.. Select the parent node of the current node.
@ Select attributes.

In the following table, we have listed some path expressions and expression results:

Path expression Result
Bookstore Select All subnodes of the bookstore element.
/Bookstore

Select the root element bookstore.

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

Bookstore/book Select all the book elements that belong to the sub-elements of bookstore.
// Book Select All book child elements regardless of their location in the document.
Bookstore // book Select all the book elements belonging to the descendant of the bookstore element, regardless of where they are located under the bookstore.
// @ Lang Select all properties named Lang.


Predicates)

It is used to find a specific node or a node that contains a specified value.

The predicates are embedded in square brackets.

In the following table, we list some path expressions with predicates and the results of the expressions:

Path expression Result
/Bookstore/book [1] Select the first book element that belongs to the bookstore sub-element.
/Bookstore/book [last ()] Select the last book element that belongs to the bookstore sub-element.
/Bookstore/book [last ()-1] Select the penultimate book element that belongs to the bookstore sub-element.
/Bookstore/book [position () <3] Select the first two bookstore sub-elements.
// Title [@ Lang] Select all the title elements with the lang attribute.
// Title [@ lang = 'eng'] Select All title elements and these elements have the lang attribute whose value is Eng.
/Bookstore/book [price> 35.00] Select all the book elements of the bookstore element, and the value of the price element must be greater than 35.00.
/Bookstore/book [price> 35.00]/Title Select all the title elements of the book element in the bookstore element, and the value of the price element must be greater than 35.00.


Select unknown Node

The XPath wildcard can be used to select unknown XML elements.

Wildcard Description
* Match any element node.
@* Match any attribute node.
Node () Match any type of nodes.

In the following table, we list some path expressions and the results of these expressions:

Path expression Result
/Bookstore /* Select all child elements of the bookstore element.
//* Select all elements in the document.
// Title [@ *] Select All title elements with attributes.


Select several paths

You can select several paths by using the "|" operator in the path expression.

In the following table, we list some path expressions and the results of these expressions:

 

Path expression Result
// Book/Title | // book/price Select all the title and price elements of the book element.
// Title | // price Select all the title and price elements in the document.
/Bookstore/book/Title | // price Select all the title elements of the book element that belongs to the bookstore element and all the price elements in the document.

 

 

XPath axis (axes)

The axis defines the node set relative to the current node.

Axis name Result
Ancestor Select all the ancestors of the current node (parent, grandfather, etc ).
Ancestor-or-self Select all the ancestors of the current node (parent, grandfather, etc.) and the current node itself.
Attribute Select all attributes of the current node.
Child Select all child elements of the current node.
Descendant Select all descendant elements (child, sun, etc.) of the current node ).
Descendant-or-self Select all descendant elements (child, sun, etc.) of the current node and the current node itself.
Following Select all nodes after the end label of the current node in the document.
Namespace Select All namespace nodes of the current node.
Parent Select the parent node of the current node.
Preceding Select all nodes before the start label of the current node in the document.
Preceding-sibling Select all peer nodes before the current node.
Self Select the current node.

 

XPath Operators

Operators available in XPath expressions are listed below:

Operator Description Instance Return Value
| Calculate two node sets // Book | // CD Returns all node sets with book and CD elements.
+ Addition 6 + 4 10
- Subtraction 6-4 2
* Multiplication 6*4 24
Div Division 8 Div 4 2
= Equal Price = 9.80

If the price is 9.80, true is returned.

If the price is 9.90, false is returned.

! = Not equal Price! = 9.80

If the price is 9.90, true is returned.

If the price is 9.80, false is returned.

< Less Price <1, 9.80

If the price is 9.00, true is returned.

If the price is 9.90, false is returned.

<= Less than or equal Price <= 9.80

If the price is 9.00, true is returned.

If the price is 9.90, false is returned.

> Greater Price> 9.80

If the price is 9.90, true is returned.

If the price is 9.80, false is returned.

> = Greater than or equal Price >=9.80

If the price is 9.90, true is returned.

If the price is 9.70, false is returned.

Or Or Price = 9.80 or price = 9.70

If the price is 9.80, true is returned.

If the price is 9.50, false is returned.

And And Price> 9.00 and price <9.90

If the price is 9.80, true is returned.

If the price is 8.50, false is returned.

MoD Calculate the remainder of the Division 5 mod 2 1

XPath beginners are actually very simple

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.