SlideShare a Scribd company logo
1 of 20
Download to read offline
going through…
Xpath Introduction

Xpath Nodes
Xpath Syntax

Xpath Axes
Xpath Operators
Xpath Examples
Presented By :
Sagar Guhe
Xpath Introduction
 XPath is a syntax for defining parts of an XML document
 XPath uses path expressions to navigate in XML documents
 XPath contains a library of standard functions
 XPath is a major element in XSLT
 XPath is a W3C recommendation
Xpath Introduction
XPath Path Expressions
XPath uses path expressions to select nodes or node-sets in an
XML document
XPath Standard Functions
XPath includes over 100 built-in functions. There are functions
for string values, numeric values, date and time comparison,
node and QName manipulation, sequence manipulation,
Boolean values, and more.
XPath is Used in XSLT
XPath is a major element in the XSLT standard. Without XPath
knowledge you will not be able to create XSLT documents.
XPATH is a W3C Recommendation
It was became W3C recommendation in 16 Nov 1999
XPath Nodes
 Nodes
There are 7 types of Nodes in XPath:
• Element
• Attribute
• Text
• Namespace
• Processing-instruction
• Comment
• Document nodes
XPath Nodes


Nodes:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<!– Root Node Element-->
<book>
<!– Element Node-->
<title lang="en">Harry Potter</title>
<!-- lang=“en” attribute node-->
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>



Atomic values

J K. Rowling

“en”
XPath Nodes
 Relationship of Nodes
<book>
<!– Parent node/ ancestor-->
<title>Harry Potter</title> <!–Child/ Sibling/ descendant->
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
XPath Syntax
Selecting Nodes
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
XPath Syntax
Example
Path
Expression

Result

bookstore

Selects all nodes with the name "bookstore"

/bookstore

Selects the root element bookstoreNote: If
the path starts with a slash ( / ) it always
represents an absolute path to an element!

bookstore/boo Selects all book elements that are children of
k
bookstore
//book

Selects all book elements no matter where
they are in the document

bookstore//bo Selects all book elements that are
ok
descendant of the bookstore element, no
matter where they are under the bookstore
element
//@lang

Selects all attributes that are named lang
Predicates

XPath Syntax

 Predicates are used to find a specific node or a node that
contains a specific value.
 Predicates are always embedded in square brackets.
Examples
Path Expression

Result

/bookstore/book[1]

Selects the first book element that is the child of
the bookstore element.Note: IE5 and later has
implemented that [0] should be the first node,
but according to the W3C standard it should
have been [1]!!

/bookstore/book[last()]

Selects the last book element that is the child of
the bookstore element

/bookstore/book[last()-1]

Selects the last but one book element that is the
child of the bookstore element

/bookstore/book[position()<3]

Selects the first two book elements that are
children of the bookstore element
Predicates

XPath Syntax

//title[@lang]

Selects all the title elements that have
an attribute named lang

//title[@lang='eng']

Selects all the title elements that have
an attribute named lang with a value
of 'eng'

/bookstore/book[price>35.00]

Selects all the book elements of the
bookstore element that have a price
element with a value greater than
35.00

/bookstore/book[price>35.00]/title

Selects all the title elements of the
book elements of the bookstore
element that have a price element
with a value greater than 35.00
XPath Syntax

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:
Wildcard

Description

*

Matches any element node

@*

Matches any attribute node

node()

Matches any node of any kind

Path
Expression

Result

/bookstore/*

Selects all the child nodes of the bookstore
element

//*

Selects all elements in the document

//title[@*]

Selects all title elements which have any
attribute
XPath Syntax
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:

Path Expression

Result

//book/title | //book/price

Selects all the title AND price elements
of all book elements

//title | //price

Selects all the title AND price elements in
the document

/bookstore/book/title |
//price

Selects all the title elements of the book
element of the bookstore element AND
all the price elements in the document
XPath Axes
An axis defines a node-set relative to the current node.
AxisName

Result

ancestor

Selects all ancestors (parent, grandparent,
etc.) of the current node

ancestor-or-self

Selects all ancestors (parent, grandparent,
etc.) of the current node and the current
node itself

attribute

Selects all attributes of the current node

child

Selects all children of the current node

descendant

Selects all descendants (children,
grandchildren, etc.) of the current node

descendant-or-self

Selects all descendants (children,
grandchildren, etc.) of the current node and
the current node itself
XPath Axes
following

Selects everything in the document
after the closing tag of the current node

following-sibling

Selects all siblings after the current
node

namespace

Selects all namespace nodes of the
current node

parent

Selects the parent of the current node

preceding

Selects all nodes that appear before the
current node in the document, except
ancestors, attribute nodes and
namespace nodes

preceding-sibling

Selects all siblings before the current
node

self

Selects the current node
Examples

XPath Axes

Example

Result

child::book

Selects all book nodes that are children of the current node

attribute::lang

Selects the lang attribute of the current node

child::*

Selects all element children of the current node

attribute::*

Selects all attributes of the current node

child::text()

Selects all text node children of the current node

child::node()

Selects all children of the current node

descendant::book

Selects all book descendants of the current node

ancestor::book

Selects all book ancestors of the current node

ancestor-or-self::book

Selects all book ancestors of the current node - and the
current as well if it is a book node

child::*/child::price

Selects all price grandchildren of the current node
XPath Operators
Operator

Description

Example

Return value

|

Computes two node-sets

//book | //cd

Returns a node-set with
all 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

true if price is 9.80
false if price is 9.90

!=

Not equal

price!=9.80

true if price is 9.90
false if price is 9.80

<

Less than

price<9.80

true if price is 9.00
false if price is 9.80
XPath Operators
<=

Less than or equal to

price<=9.80

true if price is 9.00
false if price is 9.90

>

Greater than

price>9.80

true if price is 9.90
false if price is 9.80

>=

Greater than or equal to

price>=9.80

true if price is 9.90
false if price is 9.70

or

or

price=9.80 or price=9.70 true if price is 9.80
false if price is 9.50

and

and

price>9.00 and
price<9.90

true if price is 9.80
false if price is 8.50

mod

Modulus (division
remainder)

5 mod 2

1
XPath Operators
<=

Less than or equal to

price<=9.80

true if price is 9.00
false if price is 9.90

>

Greater than

price>9.80

true if price is 9.90
false if price is 9.80

>=

Greater than or equal to

price>=9.80

true if price is 9.90
false if price is 9.70

or

or

price=9.80 or price=9.70 true if price is 9.80
false if price is 9.50

and

and

price>9.00 and
price<9.90

true if price is 9.80
false if price is 8.50

mod

Modulus (division
remainder)

5 mod 2

1
Bibliography
w3c Organisation:
http://www.w3schools.com/xpath/
Thank You!!!

More Related Content

What's hot

Standard template library
Standard template libraryStandard template library
Standard template libraryJancypriya M
 
Stl Containers
Stl ContainersStl Containers
Stl Containersppd1961
 
How to choose best containers in STL (C++)
How to choose best containers in STL (C++)How to choose best containers in STL (C++)
How to choose best containers in STL (C++)Sangharsh agarwal
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template LibraryGauravPatil318
 
Standard template library
Standard template libraryStandard template library
Standard template librarySukriti Singh
 
358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3sumitbardhan
 
An introduction to functional programming with Swift
An introduction to functional programming with SwiftAn introduction to functional programming with Swift
An introduction to functional programming with SwiftFatih Nayebi, Ph.D.
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)Hemant Jain
 
358 33 powerpoint-slides_7-structures_chapter-7
358 33 powerpoint-slides_7-structures_chapter-7358 33 powerpoint-slides_7-structures_chapter-7
358 33 powerpoint-slides_7-structures_chapter-7sumitbardhan
 
Java class 5
Java class 5Java class 5
Java class 5Edureka!
 
XPath - A practical guide
XPath - A practical guideXPath - A practical guide
XPath - A practical guideTobias Schlitt
 
Text and Numbers (Data Types)in PHP
Text and Numbers (Data Types)in PHPText and Numbers (Data Types)in PHP
Text and Numbers (Data Types)in PHPKamal Acharya
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template LibraryKumar Gaurav
 

What's hot (20)

STL in C++
STL in C++STL in C++
STL in C++
 
Standard template library
Standard template libraryStandard template library
Standard template library
 
Stl Containers
Stl ContainersStl Containers
Stl Containers
 
How to choose best containers in STL (C++)
How to choose best containers in STL (C++)How to choose best containers in STL (C++)
How to choose best containers in STL (C++)
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template Library
 
Standard template library
Standard template libraryStandard template library
Standard template library
 
Io streams
Io streamsIo streams
Io streams
 
2CPP16 - STL
2CPP16 - STL2CPP16 - STL
2CPP16 - STL
 
Text processing by Rj
Text processing by RjText processing by Rj
Text processing by Rj
 
358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3358 33 powerpoint-slides_3-pointers_chapter-3
358 33 powerpoint-slides_3-pointers_chapter-3
 
An introduction to functional programming with Swift
An introduction to functional programming with SwiftAn introduction to functional programming with Swift
An introduction to functional programming with Swift
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)
 
358 33 powerpoint-slides_7-structures_chapter-7
358 33 powerpoint-slides_7-structures_chapter-7358 33 powerpoint-slides_7-structures_chapter-7
358 33 powerpoint-slides_7-structures_chapter-7
 
Java class 5
Java class 5Java class 5
Java class 5
 
XPath - A practical guide
XPath - A practical guideXPath - A practical guide
XPath - A practical guide
 
Text and Numbers (Data Types)in PHP
Text and Numbers (Data Types)in PHPText and Numbers (Data Types)in PHP
Text and Numbers (Data Types)in PHP
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template Library
 
OOP Principles
OOP PrinciplesOOP Principles
OOP Principles
 
Javascript
JavascriptJavascript
Javascript
 
Chapter 4 strings
Chapter 4 stringsChapter 4 strings
Chapter 4 strings
 

Viewers also liked

Viewers also liked (20)

Hacking_PPT
Hacking_PPT Hacking_PPT
Hacking_PPT
 
The Seer - By Orson Pratt
The Seer - By Orson PrattThe Seer - By Orson Pratt
The Seer - By Orson Pratt
 
Appcelerator Alloy MVC
Appcelerator Alloy MVCAppcelerator Alloy MVC
Appcelerator Alloy MVC
 
Load
LoadLoad
Load
 
Tell-n-sell April 30 to May 06
Tell-n-sell April 30 to May 06Tell-n-sell April 30 to May 06
Tell-n-sell April 30 to May 06
 
fra TELE-satellite-1107
fra TELE-satellite-1107fra TELE-satellite-1107
fra TELE-satellite-1107
 
Crisis or Opportunity
Crisis or OpportunityCrisis or Opportunity
Crisis or Opportunity
 
Skyworth
SkyworthSkyworth
Skyworth
 
What`s New in Java 8
What`s New in Java 8What`s New in Java 8
What`s New in Java 8
 
por TELE-satellite-1107
por TELE-satellite-1107por TELE-satellite-1107
por TELE-satellite-1107
 
MIT Article October 2006
MIT Article October 2006MIT Article October 2006
MIT Article October 2006
 
Port Android To Windows App
Port Android To Windows AppPort Android To Windows App
Port Android To Windows App
 
Dr.eduardo apresentaçao
Dr.eduardo apresentaçaoDr.eduardo apresentaçao
Dr.eduardo apresentaçao
 
R57shell
R57shellR57shell
R57shell
 
TSS intro slides general
TSS intro slides generalTSS intro slides general
TSS intro slides general
 
가상화와 보안 발표자료
가상화와 보안 발표자료가상화와 보안 발표자료
가상화와 보안 발표자료
 
Wordpress 3.5 -install-appserv
Wordpress 3.5 -install-appservWordpress 3.5 -install-appserv
Wordpress 3.5 -install-appserv
 
The Theme Of Scat
The Theme Of ScatThe Theme Of Scat
The Theme Of Scat
 
Teste
TesteTeste
Teste
 
Programming Without Coding Technology (PWCT) Features - Framework & Extension
Programming Without Coding Technology (PWCT) Features - Framework & ExtensionProgramming Without Coding Technology (PWCT) Features - Framework & Extension
Programming Without Coding Technology (PWCT) Features - Framework & Extension
 

Similar to X path (20)

Xpath
XpathXpath
Xpath
 
03 x files
03 x files03 x files
03 x files
 
Xpath
XpathXpath
Xpath
 
TAppWeb Training Material
TAppWeb Training MaterialTAppWeb Training Material
TAppWeb Training Material
 
TAppWeb Training Material
TAppWeb Training MaterialTAppWeb Training Material
TAppWeb Training Material
 
Extracting data from xml
Extracting data from xmlExtracting data from xml
Extracting data from xml
 
TApp Documentation
TApp DocumentationTApp Documentation
TApp Documentation
 
Querring xml with xpath
Querring xml with xpath Querring xml with xpath
Querring xml with xpath
 
Day2 xslt x_path_xquery
Day2 xslt x_path_xqueryDay2 xslt x_path_xquery
Day2 xslt x_path_xquery
 
Xpath.pdf
Xpath.pdfXpath.pdf
Xpath.pdf
 
X FILES
X FILESX FILES
X FILES
 
Xpath.ppt
Xpath.pptXpath.ppt
Xpath.ppt
 
Xpath presentation
Xpath presentationXpath presentation
Xpath presentation
 
02_Xpath.pdf
02_Xpath.pdf02_Xpath.pdf
02_Xpath.pdf
 
Javascript Test Automation Workshop (21.08.2014)
Javascript Test Automation Workshop (21.08.2014)Javascript Test Automation Workshop (21.08.2014)
Javascript Test Automation Workshop (21.08.2014)
 
XPATH_XSLT-1.pptx
XPATH_XSLT-1.pptxXPATH_XSLT-1.pptx
XPATH_XSLT-1.pptx
 
Xml transformation language
Xml transformation languageXml transformation language
Xml transformation language
 
Learning XSLT
Learning XSLTLearning XSLT
Learning XSLT
 
Session 4
Session 4Session 4
Session 4
 
Mule expression component
Mule expression componentMule expression component
Mule expression component
 

Recently uploaded

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 

Recently uploaded (20)

AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 

X path

  • 1. going through… Xpath Introduction Xpath Nodes Xpath Syntax Xpath Axes Xpath Operators Xpath Examples Presented By : Sagar Guhe
  • 2. Xpath Introduction  XPath is a syntax for defining parts of an XML document  XPath uses path expressions to navigate in XML documents  XPath contains a library of standard functions  XPath is a major element in XSLT  XPath is a W3C recommendation
  • 3. Xpath Introduction XPath Path Expressions XPath uses path expressions to select nodes or node-sets in an XML document XPath Standard Functions XPath includes over 100 built-in functions. There are functions for string values, numeric values, date and time comparison, node and QName manipulation, sequence manipulation, Boolean values, and more. XPath is Used in XSLT XPath is a major element in the XSLT standard. Without XPath knowledge you will not be able to create XSLT documents. XPATH is a W3C Recommendation It was became W3C recommendation in 16 Nov 1999
  • 4. XPath Nodes  Nodes There are 7 types of Nodes in XPath: • Element • Attribute • Text • Namespace • Processing-instruction • Comment • Document nodes
  • 5. XPath Nodes  Nodes: <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <!– Root Node Element--> <book> <!– Element Node--> <title lang="en">Harry Potter</title> <!-- lang=“en” attribute node--> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore>  Atomic values  J K. Rowling  “en”
  • 6. XPath Nodes  Relationship of Nodes <book> <!– Parent node/ ancestor--> <title>Harry Potter</title> <!–Child/ Sibling/ descendant-> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
  • 7. XPath Syntax Selecting Nodes 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
  • 8. XPath Syntax Example Path Expression Result bookstore Selects all nodes with the name "bookstore" /bookstore Selects the root element bookstoreNote: If the path starts with a slash ( / ) it always represents an absolute path to an element! bookstore/boo Selects all book elements that are children of k bookstore //book Selects all book elements no matter where they are in the document bookstore//bo Selects all book elements that are ok descendant of the bookstore element, no matter where they are under the bookstore element //@lang Selects all attributes that are named lang
  • 9. Predicates XPath Syntax  Predicates are used to find a specific node or a node that contains a specific value.  Predicates are always embedded in square brackets. Examples Path Expression Result /bookstore/book[1] Selects the first book element that is the child of the bookstore element.Note: IE5 and later has implemented that [0] should be the first node, but according to the W3C standard it should have been [1]!! /bookstore/book[last()] Selects the last book element that is the child of the bookstore element /bookstore/book[last()-1] Selects the last but one book element that is the child of the bookstore element /bookstore/book[position()<3] Selects the first two book elements that are children of the bookstore element
  • 10. Predicates XPath Syntax //title[@lang] Selects all the title elements that have an attribute named lang //title[@lang='eng'] Selects all the title elements that have an attribute named lang with a value of 'eng' /bookstore/book[price>35.00] Selects all the book elements of the bookstore element that have a price element with a value greater than 35.00 /bookstore/book[price>35.00]/title Selects all the title elements of the book elements of the bookstore element that have a price element with a value greater than 35.00
  • 11. XPath Syntax 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: Wildcard Description * Matches any element node @* Matches any attribute node node() Matches any node of any kind Path Expression Result /bookstore/* Selects all the child nodes of the bookstore element //* Selects all elements in the document //title[@*] Selects all title elements which have any attribute
  • 12. XPath Syntax 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: Path Expression Result //book/title | //book/price Selects all the title AND price elements of all book elements //title | //price Selects all the title AND price elements in the document /bookstore/book/title | //price Selects all the title elements of the book element of the bookstore element AND all the price elements in the document
  • 13. XPath Axes An axis defines a node-set relative to the current node. AxisName Result ancestor Selects all ancestors (parent, grandparent, etc.) of the current node ancestor-or-self Selects all ancestors (parent, grandparent, etc.) of the current node and the current node itself attribute Selects all attributes of the current node child Selects all children of the current node descendant Selects all descendants (children, grandchildren, etc.) of the current node descendant-or-self Selects all descendants (children, grandchildren, etc.) of the current node and the current node itself
  • 14. XPath Axes following Selects everything in the document after the closing tag of the current node following-sibling Selects all siblings after the current node namespace Selects all namespace nodes of the current node parent Selects the parent of the current node preceding Selects all nodes that appear before the current node in the document, except ancestors, attribute nodes and namespace nodes preceding-sibling Selects all siblings before the current node self Selects the current node
  • 15. Examples XPath Axes Example Result child::book Selects all book nodes that are children of the current node attribute::lang Selects the lang attribute of the current node child::* Selects all element children of the current node attribute::* Selects all attributes of the current node child::text() Selects all text node children of the current node child::node() Selects all children of the current node descendant::book Selects all book descendants of the current node ancestor::book Selects all book ancestors of the current node ancestor-or-self::book Selects all book ancestors of the current node - and the current as well if it is a book node child::*/child::price Selects all price grandchildren of the current node
  • 16. XPath Operators Operator Description Example Return value | Computes two node-sets //book | //cd Returns a node-set with all 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 true if price is 9.80 false if price is 9.90 != Not equal price!=9.80 true if price is 9.90 false if price is 9.80 < Less than price<9.80 true if price is 9.00 false if price is 9.80
  • 17. XPath Operators <= Less than or equal to price<=9.80 true if price is 9.00 false if price is 9.90 > Greater than price>9.80 true if price is 9.90 false if price is 9.80 >= Greater than or equal to price>=9.80 true if price is 9.90 false if price is 9.70 or or price=9.80 or price=9.70 true if price is 9.80 false if price is 9.50 and and price>9.00 and price<9.90 true if price is 9.80 false if price is 8.50 mod Modulus (division remainder) 5 mod 2 1
  • 18. XPath Operators <= Less than or equal to price<=9.80 true if price is 9.00 false if price is 9.90 > Greater than price>9.80 true if price is 9.90 false if price is 9.80 >= Greater than or equal to price>=9.80 true if price is 9.90 false if price is 9.70 or or price=9.80 or price=9.70 true if price is 9.80 false if price is 9.50 and and price>9.00 and price<9.90 true if price is 9.80 false if price is 8.50 mod Modulus (division remainder) 5 mod 2 1