1 / 28

XML Path Language (XPath)

XML Path Language (XPath). Outline 11.1 Introduction 11.2 Nodes 11.3 Location Paths 11.3.1 Axes 11.3.2 Node Tests 11.3.3 Location Paths Using Axes and Node Tests 11.4 Node-set Operators and Functions. 11.1 Introduction. XML Path Language (XPath)

ghita
Download Presentation

XML Path Language (XPath)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Path Language (XPath) Outline11.1 Introduction11.2 Nodes11.3 Location Paths 11.3.1 Axes 11.3.2 Node Tests 11.3.3 Location Paths Using Axes and Node Tests11.4 Node-set Operators and Functions

  2. 11.1 Introduction • XML Path Language (XPath) • Syntax for locating information in XML document • e.g., attribute values • String-based language of expressions • Not structural language like XML • Used by other XML technologies • XSLT • XPointer

  3. 11.2 Nodes • XML document • Tree structure with nodes • Each node represents part of XML document • Seven types • Root • Element • Attribute • Text • Comment • Processing instruction • Namespace • Attributes and namespaces are not children of their parent node • They describe their parent node

  4. 1 <?xml version = "1.0"?> Root node 2 Comment nodes 3 <!-- Fig. 11.1 : simple.xml --> 4 <!-- Simple XML document --> Element nodes Attribute nodes 5 6 <book title = “XML at Santa Ana College"edition = "3"> 7 Text nodes 8 <sample> 9 <![CDATA[ 10 11 // C++ comment 12 if ( this->getX() < 5 && value[ 0 ] != 3 ) 13 cerr << this->displayError(); 14 ]]> 15 </sample> 16 17 XML at Santa Ana College by CS Staff 18 </book> Fig. 11.1 Simple XML document.Root node Comment nodes Element nodesAttribute nodesText nodes

  5. Fig. 11.2 XPath tree for Fig. 11.1. Root CommentFig. 11.1 : simple.xml CommentSimple XML document Elementbook AttributeTitleXML at Santa Ana College Attributeedition 3 Elementsample Text// C++ comment if (this -> getX() < 5 && value[ 0 ] != 3 ) cerr << this->displayError(); TextXML at Santa Ana College by CS Staff

  6. 1 <?xml version = "1.0"?> Root node 2 Comment nodes 3 <!-- Fig. 11.3 : simple2.xml --> 4 <!-- Processing instructions and namespacess --> 5 Namespace nodes Processing instruction node 6 <html xmlns = "http://www.w3.org/TR/REC-html40"> Element nodes 7 Text nodes 8 <head> 9 <title>Processing Instruction and Namespace Nodes</title> Attribute nodes 10 </head> 11 12 <?processor example = "fig11_03.xml"?> 13 14 <body> 15 16 <sac:book cssac:edition = "1" 17 xmlns:sac = "http://sacbusiness.org/xmlns"> 18 <sac:title>XML</sac:title> 19 </sac:book> 20 21 </body> 22 23 </html> Fig. 11.3 XML document with processing-instruction and namespace nodes.Root nodeComment nodesNamespace nodesProcessing instruction nodeElement nodesText nodesAttribute nodes

  7. Fig. 11.4 Tree diagram of an XML documentwith a processing-instruction node Root CommentFig. 11.3 : simple2.xml CommentProcessing instructions and namespaces Elementhtml Namespacehttp://www.w3.org/TR/REC-html40 Elementhead Elementtitle TextProcessing instructions and Namespace Nodes Continued on next slide...

  8. Fig. 11.4 Tree diagram of an XML document with a processing-instruction node. (Part 2) Continued from previous slide Processing Instructionprocessorexample = "fig11_03.xml" Elementbody Elementbook Attributeedition1 Namespacehttp://sacbusiness.org/xmlns Elementtitle TextXML

  9. Fig. 11.5 XPath node types

  10. Fig. 11.5 XPath node types. (Part 2)

  11. 11.3 Location Paths • Location path • Expression specifying how to navigate XPath tree • Composed of location steps • Each location step composed of • Axis • Node test • Predicate

  12. 11.3.1 Axes • XPath searches are made relative to context node • Axis • Indicates which nodes are included in search • Relative to context node • Dictates node ordering in set • Forward axes select nodes that follow context node • Reverse axes select nodes that precede context node

  13. Fig. 11.6 XPath axes.

  14. 11.3.2 Node Tests • Node tests • Refine set of nodes selected by axis • Rely upon axis’ principle node type • Corresponds to type of node axis can select

  15. Fig. 11.7 Some XPath node tests.

  16. 11.3.3 Location Paths Using Axes and Node Tests • Location step • Axis and node test separated by double colon (::) • Optional predicate enclosed in square brackets ([]) • Some examples: • Select all element-node children of context node child::* • Select all text-node children of context nodechild::text() • Select all text-node grandchildren of context node child::*/child::text()

  17. Fig. 11.8 Some location-path abbreviations.

  18. 1 <?xml version = "1.0"?> 2 3 <!-- Fig. 11.9 : books.xml --> 4 <!-- XML book list --> 5 6 <books> 7 8 <book> 9 <title>Java</title> 10 <translation edition = "1">Spanish</translation> 11 <translation edition = "1">Danish</translation> 12 <translation edition = "1">Japanese</translation> 13 <translation edition = "2">French</translation> 14 <translation edition = "2">Japanese</translation> 15 </book> 16 17 <book> 18 <title>C++</title> 19 <translation edition = "1">Swedish</translation> 20 <translation edition = "2">French</translation> 21 <translation edition = "2">Spanish</translation> 22 <translation edition = "3">Finnish</translation> 23 <translation edition = "3">Japanese</translation> 24 </book> 25 26 </books> Fig. 11.9 XML document that marks up book translations.

  19. Fig. 11.10 XPath tree for books.xml Othernodes… Elementbook Elementtitle TextJava Elementtranslation Attributeedition 1 TextSpanish Elementtranslation Attributeedition 1 Text Danish Continued on next slide…

  20. Fig. 11.10 XPath tree for books.xml Continued from previous slide… Elementtranslation Attributeedition 1 TextJapanese Elementtranslation Attributeedition 2 TextFrench Elementtranslation Attributeedition 2 TextJapanese Othernodes…

  21. 11.3.3 Location Paths Using Axes and Node Tests (cont.) • Which books have Japanese translations? • Use root node of XPath tree as context node • Use predicate • Boolean expression for filtering nodes from search • Compare string value of current node to string ‘Japanese’ /books/book/translation[. = ‘Japanese’]/../title

  22. 11.4 Node-set Operators and Functions • Node-set operators • Manipulate node sets to form others • Node-set functions • Perform actions on node-sets returned by location paths

  23. Fig. 11.11 Node-set operators.

  24. Fig. 11.12 Some node-set functions.

  25. 11.4 Node-set Operators and Functions (cont.) • Location-path expressions • Combine node-set operators and functions • Select all head and body children element nodes head | body • Select last bold element node in head element node head/title[ last() ] • Select third book element book[ position() = 3 ] • Or alternatively book[ 3 ] • Return total number of element-node children count( * ) • Select all book element nodes in document //book

  26. 1 <?xml version = "1.0"?> 2 3 <!-- Fig. 11.13 : stocks.xml --> 4 <!-- Stock list --> 5 6 <stocks> 7 8 <stock symbol = "INTC"> 9 <name>Intel Corporation</name> 10 </stock> 11 12 <stock symbol = "CSCO"> 13 <name>Cisco Systems, Inc.</name> 14 </stock> 15 16 <stock symbol = "DELL"> 17 <name>Dell Computer Corporation</name> 18 </stock> 19 20 <stock symbol = "MSFT"> 21 <name>Microsoft Corporation</name> 22 </stock> 23 24 <stock symbol = "SUNW"> 25 <name>Sun Microsystems, Inc.</name> 26 </stock> 27 28 <stock symbol ="CMGI"> 29 <name>CMGI, Inc.</name> 30 </stock> 31 32 </stocks> Fig. 11.13 List of companies with stock symbols.

  27. 1 <?xml version = "1.0"?> 2 3 <!-- Fig. 11.14 : stocks.xsl --> 4 <!-- string function usage --> 5 6 <xsl:stylesheet version = "1.0" 7 xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> XPath string functions 8 9 <xsl:template match = "/stocks"> 10 <html> 11 <body> 12 <ul> 13 14 <xsl:for-each select = "stock"> 15 16 <xsl:if test = 17 "starts-with(@symbol, 'C')"> 18 19 <li> 20 <xsl:value-of select = 21 "concat(@symbol,' - ', name)"/> 22 </li> 23 </xsl:if> 24 25 </xsl:for-each> 26 </ul> 27 </body> 28 </html> 29 </xsl:template> 30 </xsl:stylesheet> Fig. 11.14 Demonstrating some String functions.XPath string functions

  28. Output for Fig. 11.14

More Related