XPath - XML Path Language

  • 4,751 views
Uploaded on

XPath - XML Path Language

XPath - XML Path Language

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • good
    Are you sure you want to
    Your message goes here
  • I had been searching for someone to prove this point about intc for a little while, actually I have been searching since last Friday, as, as you know, a lot of posts or should I say all posts except the ones on: Mad About Options: INTC, are promoting the opposite position, so I'm glad I found this.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,751
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
163
Comments
2
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. XPath - XML Path Language XML http://yht4ever.blogspot.com [email_address] B070066 - NIIT Quang Trung 08/2007
  • 2. Contents Exercises Node-set Operators and Functions Location Paths Nodes Introduction
  • 3. 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
  • 4. Nodes
    • XML document
      • Tree structure with nodes
      • Each node represents part of XML document
          • Root
          • Element
          • Attribute
          • Text
          • Comment
          • Processing instruction
          • Namespace
        • Attributes and namespaces are not children of their parent node
          • They describe their parent node
  • 5. Simple XML document 1 <?xml version = &quot;1.0&quot; ?> 2 3 <!-- simple.xml --> 4 <!-- Simple XML document --> 5 6 <book title = “C++ How to Program&quot; edition = &quot;3&quot; > 7 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 C++ How to Program by Deitel &amp; Deitel 18 </book> Root node Comment nodes Attribute nodes Element nodes Text nodes
  • 6. XPath tree for simple.xml Attribute Title C++ How to Program Element book Comment Fig. 11.1 : simple.xml Comment Simple XML document Attribute edition 3 Root Text C++ How to Program by Deitel & Deitel Element sample Text // C++ comment if (this -> getX() < 5 && value[ 0 ] != 3 ) cerr << this->displayError();
  • 7. XML document with processing-instruction and namespace nodes 1 <?xml version = &quot;1.0&quot; ?> 2 3 <!-- Fig. 11.3 : simple2.xml --> 4 <!-- Processing instructions and namespacess --> 5 6 <html xmlns = &quot;http://www.w3.org/TR/REC-html40&quot; > 7 8 <head> 9 <title> Processing Instruction and Namespace Nodes </title> 10 </head> 11 12 <?deitelprocessor example = &quot;fig11_03.xml&quot; ?> 13 14 <body> 15 16 <deitel:book deitel:edition = &quot;1&quot; 17 xmlns:deitel = &quot;http://www.deitel.com/xmlhtp1&quot; > 18 <deitel:title> XML How to Program </deitel:title> 19 </deitel:book> 20 21 </body> 22 23 </html> Root node Comment nodes Namespace nodes Processing instruction node Element nodes Text nodes Attribute nodes
  • 8. Tree diagram of an XML document with a processing-instruction node Continued on next slide ... Root Comment Fig. 11.3 : simple2.xml Comment Processing instructions and namespaces Element html Namespace http://www.w3.org/TR/REC-html40 Element head Text Processing instructions and Namespcae Nodes Element title
  • 9. Tree diagram of an XML document with a processing-instruction node Continued from previous slide Processing Instruction deitelprocessor example = &quot; fig11_03.xml &quot; Element body Element book Attribute edition 1 Namespace http://www.deitel.com/xmlhtp1 Element title Text XML How to Program
  • 10. XPath node types
  • 11. XPath node types (cont.)
  • 12. Location Paths
    • Location path
      • Expression specifying how to navigate XPath tree
      • Composed of location steps
        • Each location step composed of
          • Axis (Mối liên hệ)
          • Node test
          • Predicate
  • 13. 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
  • 14. XPath axes
  • 15. 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
  • 16. Some XPath node tests
  • 17. 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 node child::text()
        • Select all text-node grandchildren of context node
        • child::*/child::text()
  • 18. Some location-path abbreviations
  • 19. 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
  • 20. Node-set operators
  • 21. Some node-set functions
  • 22. Node-set Operators and Functions (cont.)
    • Location-path expressions
      • Combine node-set operators and functions
        • 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
  • 23. 1 <?xml version = &quot;1.0&quot; ?> 2 3 <!-- Fig. 11.13 : stocks.xml --> 4 <!-- Stock list --> 5 6 <stocks> 7 8 <stock symbol = &quot;INTC&quot; > 9 <name> Intel Corporation </name> 10 </stock> 11 12 <stock symbol = &quot;CSCO&quot; > 13 <name> Cisco Systems, Inc. </name> 14 </stock> 15 16 <stock symbol = &quot;DELL&quot; > 17 <name> Dell Computer Corporation </name> 18 </stock> 19 20 <stock symbol = &quot;MSFT&quot; > 21 <name> Microsoft Corporation </name> 22 </stock> 23 24 <stock symbol = &quot;SUNW&quot; > 25 <name> Sun Microsystems, Inc. </name> 26 </stock> 27 28 <stock symbol = &quot;CMGI&quot; > 29 <name> CMGI, Inc. </name> 30 </stock> 31 32 </stocks>
  • 24. 1 <?xml version = &quot;1.0&quot; ?> 2 3 <!-- Fig. 11.14 : stocks.xsl --> 4 <!-- string function usage --> 5 6 <xsl:stylesheet version = &quot;1.0&quot; 7 xmlns:xsl = &quot;http://www.w3.org/1999/XSL/Transform&quot; > 8 9 <xsl:template match = &quot;/stocks&quot; > 10 <html> 11 <body> 12 <ul> 13 14 <xsl:for-each select = &quot;stock&quot; > 15 16 <xsl:if test = 17 &quot;starts-with(@symbol, 'C')&quot; > 18 19 <li> 20 <xsl:value-of select = 21 &quot;concat(@symbol,' - ', name)&quot; /> 22 </li> 23 </xsl:if> 24 25 </xsl:for-each> 26 </ul> 27 </body> 28 </html> 29 </xsl:template> 30 </xsl:stylesheet> XPath string functions
  • 25. Reference
    • XML How to program
    • http://www.w3.org
    • XML tutorial http://www.w3schools.com/w3c/
  • 26. Q&A
    • Feel free to post questions at http://yht4ever.blogspot.com
    • or email to: [email_address] or [email_address]
  • 27. http://yht4ever.blogspot.com Thank You !