SlideShare une entreprise Scribd logo
1  sur  20
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!!!

Contenu connexe

Tendances

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.
 
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
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)Hemant Jain
 
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
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template LibraryKumar Gaurav
 
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
 

Tendances (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
 
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
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)
 
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
 
Standard Template Library
Standard Template LibraryStandard Template Library
Standard Template Library
 
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
 
OOP Principles
OOP PrinciplesOOP Principles
OOP Principles
 
Javascript
JavascriptJavascript
Javascript
 
Chapter 4 strings
Chapter 4 stringsChapter 4 strings
Chapter 4 strings
 

Similaire à 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
 

Dernier

Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...Nguyen Thanh Tu Collection
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptxmary850239
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...DhatriParmar
 
week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptxJonalynLegaspi2
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
Multi Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP ModuleMulti Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP ModuleCeline George
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 

Dernier (20)

Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
 
week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptx
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
Multi Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP ModuleMulti Domain Alias In the Odoo 17 ERP Module
Multi Domain Alias In the Odoo 17 ERP Module
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 

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