Presentation is loading. Please wait.

Presentation is loading. Please wait.

Modified Slides from Dr. Sagiv

Similar presentations


Presentation on theme: "Modified Slides from Dr. Sagiv"— Presentation transcript:

1 Modified Slides from Dr. Sagiv
XPATH Modified Slides from Dr. Sagiv

2 XPath A Language for Locating Nodes in XML Documents
XPath expressions are written in a syntax that resembles paths in file systems The list of nodes located by an XPath expression is called a Nodelist XPath is used in XSL and in XQuery (a query language for XML) W3Schools has an XPath tutorial XPath includes Axis navigation Conditions Functions

3 <?xml version="1.0" encoding="ISO-8859-1"?>
<catalog> <cd country="UK"> <title>Dark Side of the Moon</title> <artist>Pink Floyd</artist> <price>10.90</price> </cd> <title>Space Oddity</title> <artist>David Bowie</artist> <price>9.90</price> <cd country="USA"> <title>Aretha: Lady Soul</title> <artist>Aretha Franklin</artist> </catalog> An XML document

4 catalog.xml catalog cd cd cd title artist price title artist price
country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90

5 The Main Idea in the Syntax of XPath Expressoins
“/” at the beginning of an XPath expression represents the root of the document “/” between element names represents a parent-child relationship “//” represents an ancestor-descendent relationship marks an attribute “[condition]” specifies a condition

6 Getting the root element of the document
catalog.xml catalog /catalog cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 Getting the root element of the document

7 catalog.xml catalog /catalog/cd cd cd cd title artist price title
country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 Finding child nodes

8 Finding descendent nodes
catalog.xml catalog /catalog/cd/price cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 Finding descendent nodes

9 /catalog/cd[price<10]
catalog.xml catalog /catalog/cd[price<10] cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 Condition on elements

10 // represents any directed path in the document
catalog.xml /catalog//title catalog //title cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 // represents any directed path in the document

11 * represents any element name in the document
catalog.xml catalog /catalog/cd/* cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 * represents any element name in the document

12 * represents any element name in the document
/*/* catalog.xml What will the following expressions return? //* catalog //*[price=9.90] //*[price=9.90]/* cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 * represents any element name in the document

13 Position based condition
catalog.xml /catalog/cd[1] catalog /catalog/cd[last()] cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 Position based condition

14 catalog.xml catalog cd cd cd title artist price title artist price
catalog cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 @ marks attributes

15 catalog.xml catalog cd cd cd title artist price title artist price
cd cd country cd country country USA UK UK title artist price title artist price title artist price Space Oddity Aretha: Lady Soul Dark Side of the Moon David Bowie Aretha Franklin Pink Floyd 10.90 9.90 9.90 @ marks attributes

16 Relative Navigation Using Axes
Starts with the current node and not with the root (/) A . marks the current node (e.g., ./title) A .. marks the parent node (e.g., title/../*) There are also other axes, e.g., child, descendent, ancestor, parent, following-sibling, etc.

17 Functions Many functions that are included in XPath Some examples:
count() – returns the number of nodes in a nodelist last() – returns the last node in a nodelist name() – returns the name of a node position() – returns the position of the node in the nodelist

18 Additional Examples of XPath Expressions
These examples use element names that are not necessarily from the XML document that was shown previously

19 Examples of XPath Expressions
para Selects the para children elements of the context node * Selects all element children of the context node text() Selects all text node children of the context node @name Selects the name attribute of the context node

20 More Examples of XPath Expressions
@* Selects all the attributes of the context node para[1] Selects the first para child of the context node para[last()] Selects the last para child of the context node */para Selects all para grandchilren of the context node

21 More Examples of XPath Expressions
/doc/chapter[5]/section[2] Selects the second section of the fifth chapter of the doc chapter//para Selects the para element descendants of the chapter element children of the context node //para Selects all the para descendants of the document root and thus selects all para elements in the same document as the context node

22 More Examples of XPath Expressions
//olist/item Selects all the item elements that have an olist parent and are in the same document as the context node . Selects the context node .//para Selects the para descendants of the context node .. Selects the parent of the context node

23 More Examples of XPath Expressions
Selects the lang attribute of the parent of the context node Selects the para children of the context node that have a type attribute with value warning chapter[title] Selects the chapter children of the context node that have one or more title children

24 More Examples of XPath Expressions
Selects the fifth para child among the children of the context node that have a type attribute with value warning Selects the fifth para child of the context node if that child has a type attribute with value warning

25 More Examples of XPath Expressions
chapter[title=“Introduction”] Selects the chapter children of the context node that have one or more title children with string-value equal to Introduction Selects employee children of the context node that have both a secretary attribute and an assistant attribute

26 More Examples of Xpath Expressions
/university/department/course This Xpath expression matches any path that starts at the root, which is a university element, passes through a department element and ends in a course element This Xpath expression matches any path that starts at the current element, continues to a child which is a department element and ends at a course element with a year attribute that is equal to 2002

27 Location Paths The previous examples are abbreviations of location paths See XPath tutorial in W3Schools For example, // is short for /descendant-or-self::node()/. //para is short for /descendant-or-self::node()/child::para


Download ppt "Modified Slides from Dr. Sagiv"

Similar presentations


Ads by Google