Download presentation
Presentation is loading. Please wait.
Published byAshlynn Thornton Modified over 9 years ago
1
www.monash.edu.au CSE3201/CSE4500 XPath
2
www.monash.edu.au 2 XPath A locator for elements or attributes in an XML document. XPath expression gives direction of navigation to the parser. Assume an XML document as a “tree” Any part of a document, eg element, attribute, is considered as a “node” Current version XPATH 1.0
3
www.monash.edu.au 3 XPath Syntax (full form): axis :: node-test [predicate] Axis –describing the relationship between nodes, eg child, parents, etc. Node test –condition for selecting nodes. Predicate: –further condition refinement of the set of nodes resulted from the node test.
4
www.monash.edu.au 4 XPath Axes Ancestor Parent/ancestor sibling node child/descendant descendant attribute sibling context node
5
www.monash.edu.au 5 Node Test A node test identifies nodes in the document that meet the criteria of the test. The simplest type of test is nodes that match an element name. Example: child::book => to find any child element with the name “book”. child::author
6
www.monash.edu.au 6 Predicate Predicate further refine or filter the node-set produced by the node test. Example: –Find the third book in the list >child::book[position( )=3] –Find all the books that has element >child::book[isbn]
7
www.monash.edu.au 7 Abbreviations FormalShortDescription child::bookbookSelect all children of the context node that has element nodes. child::**Select all element nodes of the context node. self::node().Select the context node. parent::node()..Select the parent of the context node. child::book[positi on()=1] book[1]Select the first child element that has element. attribute::*@*select all the attributes of the context node attribute::number@numberFind the number of attributes in the context node.
8
www.monash.edu.au 8 Location Path Document Root “John” “Little” “Howard” /name/first Uses “/” to build path, eg
9
www.monash.edu.au 9 Relative vs Absolute Path Absolute Path –full path needs to be included, starting from the root node. >eg: /name/first Relative Path –path is declared starting from the current context node. >eg: assume our current context is “name”, the XPath expression for the node first => first
10
www.monash.edu.au 10 Recursive Decent Operator Locating nodes based on their names, regardless of where their positions in the document. Uses “//” Example: //first –Select any element in the document (regardless how far down the tree). Decrease the performance of the stylesheet. –The entire document must be searched by the XSLT parser.
11
www.monash.edu.au 11 Filtering Nodes It is done using XPath’s predicate. –the “[ ]” symbol. Using element as a filter: –book[price] matches any element that has a child element. Using attribute as a filter: –book[@id] matches any element that has an id attribute.
12
www.monash.edu.au 12 XPath Expression Some possible operators to build an XPath Expression: andLogical AND orLogical OR not()logical negation =Equal !=Not equal <Less than <=Less than equal >Greater than >=Greater than equal |Union
13
www.monash.edu.au 13 XPath Expression - Examples
14
www.monash.edu.au 14 XPath Function XPath functions can be used to: –manipulate node set >eg: count, last, name, position –manipulate string >eg: concat, substring, contains –test boolean value >eg: language, false, true –perform numeric operations >eg: ceiling, floor, number, round, sum –XSLT specific manipulation >eg: current
15
www.monash.edu.au 15 XPath Function - Examples substring(‘abcde’,2,3) => returns ‘bcd’
16
www.monash.edu.au CSE3201/CSE4500 Information Retrieval Systems XSLT
17
www.monash.edu.au 17 Manipulating XML Documents parser data Applications
18
www.monash.edu.au 18 What is XSL Extensible Stylesheet Language Developed by W3C XSL Working Group Motivation: to handle the manipulation and presentation of XML documents Consists of: XSLT and XSL-FO
19
www.monash.edu.au 19 XSL Stylesheet processor XML document XSL document Presentation document Transforma tion process
20
www.monash.edu.au 20 Transformation Tools XPath XSL(Extensible Stylesheet Languages) –XSLT(XSL Transformation) –XSL-FO(XSL Formatting Object)
21
www.monash.edu.au 21 Transformation Process
22
www.monash.edu.au 22 XSLT Processing Type of processings: –Change of vocabulary –Reorder data elements –Combine data elements –Filter and exclude data elements Output –Other XML vocabularies or fragments –Non-XML formats Uses –Display and printing –Transformation of data
23
www.monash.edu.au 23 Example of a Stylesheet Monash Bookshop Authors Surname Harry Potter and the Sorcerer stone J.K Rowling …
24
www.monash.edu.au 24 Usage of XPath in XSLT XSLT uses XPath expression to: –Match node sets in order to execute templates. > –Select node sets to change current context and direct the flow of the execution through the source document. > –Select node sets to obtain an output value > Professional XML, page 379.
25
www.monash.edu.au 25 Structure of Stylesheet An XSLT stylesheet is an XML document. Root element is stylesheet element … Consists of a set of rules. Rules are made up of patterns and templates.
26
www.monash.edu.au 26 Attaching an XSL to an XML doc href refers to the filename of the XSL document.
27
www.monash.edu.au 27 Selecting Output Type Possible outputs: –XML, HTML, Text Syntax:
28
www.monash.edu.au 28 Templates To create a template, we need: –To declare the location in the source tree where the template will be applied. –Rules of matching to be applied. >can be another template The location is declared using the XPath expression.
29
www.monash.edu.au 29 Using Templates Templates are executed when the condition in the are met. The “ select ” attribute is optional. Without the “select” attribute, the XSL processor will apply the templates to all the child elements of the current context node.
30
www.monash.edu.au 30 Template Examples Book
31
www.monash.edu.au 31 Selecting Templates Monash Bookshop
32
www.monash.edu.au 32 Selecting Templates- cont’d Author
33
www.monash.edu.au 33 Getting the Value of a Node xsl:value-of select=XPath expression Examples: Element Attribute
34
www.monash.edu.au 34 Iteration Combination of template and apply- templates Compared the iteration.xsl and iterationTemplate.xsl
35
www.monash.edu.au 35 Conditional Test IF statement is used to change the tree traversing process. –Process a node differently from the rest of the nodes in the same family. –Eg. Print bold only for the first item in the list. xsl:if –there is no “else” statement. –takes one attribute, test, which is an XPath expression. –if it evaluates true, the body of the element is executed xs:choice –Test for multiple conditions Good practises: –Do NOT use the IF statement to select a node in a tree, use the XPATH to do that.
36
www.monash.edu.au 36 Conditional Test - Example Example: Give yellow colour to alternate rows yellow
37
www.monash.edu.au 37 Conditional Test - Note XPath xsl:if Avoid using conditional test xsl:if to match a node. Use the XPath expression instead.
38
www.monash.edu.au 38 Making Copies xsl:copy –It does not copy any child nodes that the context node may have. xsl:copy-of –copies all Book Book
39
www.monash.edu.au 39 Copy-of JK Rowling J Rowling <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/199 9/XSL/Transform'>
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.