XPath
XPath uses path expressions to select nodes or node-sets in an XML document
In XPath, there are seven kinds of nodes: element, attribute, text, namespace, processing-instruction, comment, and document nodes.
<bookstore>
<book>
<title>Little House in the Big Woods</title>
<book>
<title>Little House in the Big Woods</title>
<author>Laura Ingalls Wilder</author>
- 1932
</book>
</bookstore>
</bookstore>
Relationship of Nodes
Parent
Each element and attribute has one parent.
In the following example; the book element is the parent of the title, author, illustrator, and Published:
Children
Element nodes may have zero, one or more children.
In the above example; the title, author, illustrator, and Published elements are all children of the book element:
Siblings
Nodes that have the same parent.
In the above example; the title, author, illustrator, and Published elements are all siblings:
Ancestors
A node's parent, parent's parent, etc.
In the following example; the ancestors of the title element are the book element and the bookstore element:
Descendants
A node's children, children's children, etc.
In the following example; descendants of the bookstore element are the book, title, author, illustrator, and Published elements:
Selecting Nodes
XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below:
Expression
|
Description
|
nodename
|
Selects all nodes with the name "nodename"
|
/
|
Selects from the root node
|
//
|
Selects nodes in the document from the current node that match the selection no matter where they are
|
.
|
Selects the current node
|
..
|
Selects the parent of the current node
|
@
|
Selects attributes
|
In the table below we have listed some path expressions and the result of the expressions:
Path Expression
|
Result
| ||||||||||||||||||||||||||||||||||||||||||
bookstore
|
Selects all nodes with the name "bookstore"
| ||||||||||||||||||||||||||||||||||||||||||
/bookstore
|
Selects the root element bookstore
Note: If the path starts with a slash ( / ) it always represents an absolute path to an element!
| ||||||||||||||||||||||||||||||||||||||||||
bookstore/book
|
Selects all book elements that are children of bookstore
| ||||||||||||||||||||||||||||||||||||||||||
//book
|
Selects all book elements no matter where they are in the document
| ||||||||||||||||||||||||||||||||||||||||||
bookstore//book
|
Selects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element
| ||||||||||||||||||||||||||||||||||||||||||
//@lang
|
Selects all attributes that are named lang
Predicates
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:
Selecting Unknown Nodes
XPath wildcards can be used to select unknown XML elements.
In the table below we have listed some path expressions and the result of the expressions:
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:
|
Previous Next
Links to useful posts:
- Abstraction
- Method
Overriding
- Method
Overloading
- Instance
Variables
- Java Applets
- Pop
ups and Alerts
- Absolute
path
- Relative
path
- Annotations
- JSP Vs Servlet
- Selenium
Webdriver Browser Commands
- Absolute
path Vs Relative path
- Selenium
Webdriver Pop ups and Alerts
- Testng
Annotations - part 1
- Object
Models in QTP - Part 1
Agile Testing Methodology - Extreme
Programming and customer satisfaction
- Mobile
testing - What are the Challenges in mobile testing & Strategies
we can follow to deal with them
- Crowdsource
testing - Crowdtesting
- Model-based
testing (MBT)
- Big
Data Testing
- Cloud Testing
- TDD
Test Driven Development
- Verification
vs Validation
- Software
Testing Interview Questions - Mock Test CSTE / ISTQB
- Software
testing types
- Risk
Management