XML and XPath details

1,000 views

Published on

This is the presentation that I have done for Pre-TechEd of 2006

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,000
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • It is the Webcast Quiz time.
    I will ask you in the next couple of minutes, a set of four questions which will have multiple options. One or more options maybe correct for a question. What you have to do is to note down the answer to the question, and then send your answers to the email address we give later.
    Here goes.
  • I hope every one had enough time to note the answers. You can send your answers to the email address above.
    But if you find these questions rather easy,
  • XML and XPath details

    1. 1. XML DOM Functionality in .NET DSK Chakravarthy http://dskc.blogspot.com dskcheck@msn.com http://msmvps.com/blogs/Chakravarthy
    2. 2. Intro to XML DOM Reading XML Data Agenda Working with Nodes xPath Expressions Q&A Contact ME • You can see the agenda along the entire presentation • Q&A is at the End of session
    3. 3. Intro to XML DOM Reading XML Data What I talk about Working with Nodes xPath Expressions Q&A Contact ME • The basics of reading and writing XML, programmatically • The important classes associated with XML documents in the System.XML namespace • How to Read XML Data • How to Traverse in XML DOM using xPath expressions
    4. 4. Intro to XML DOM Are you ready ? Reading XML Data Working with Nodes xPath Expressions Q&A Contact ME Prerequisites •Basic Understanding of XML •Ability to read code
    5. 5. Intro to XML DOM Reading XML Data Introduction to XML DOM Getting Started Working with Nodes xPath Expressions Q&A Contact ME • Many apps need to read/write XML data • Perhaps need to: – Store or retrieve configuration settings – Read/write data stored in XML format – Handle inter-application data transfer • XML programming required for all these • System.Xml.XmlDocument class provides support for handling XML
    6. 6. Intro to XML DOM Reading XML Data Introduction to XML DOM What I’ll cover now Working with Nodes xPath Expressions Q&A Contact ME • NET Framework uses XML in many ways – Provides several techniques for working with XML • Only cover tree-based, in-memory handling • Other sessions cover other techniques, including the XmlReader/XmlWriter classes
    7. 7. Intro to XML DOM Reading XML Data Introduction to XML DOM .NET APIs for working with XML Working with Nodes xPath Expressions Q&A Contact ME • Two main .NET APIs for working with XML: – Cached, read/write, random access • XML Document Object Model (DOM) • Tree-based, in-memory cache • Represented by the XmlDocument class – Non-cached, forward-only, read-only access • Represented by the XmlReader/XmlWriter classes
    8. 8. Intro to XML DOM Reading XML Data Introduction to XML DOM Tree-Based XML Handling 1/4 Working with Nodes xPath Expressions Q&A Contact ME • Using this API, XML data loaded synchronously into a “tree” – Contains root node, and multiple child nodes – Each XML element corresponds to one or more nodes in the tree – Each node (except root node) has a parent node – Each node (except root node) can have multiple siblings – Each node can have multiple children
    9. 9. Intro to XML DOM Reading XML Data Introduction to XML DOM Tree-Based XML Handling 2/4 Working with Nodes xPath Expressions Q&A Contact ME • Data loaded into memory – Provides random access to individual nodes – Can search for any node, at will • Tree-based structure represents XML infoset – This is the data stored in the serialized XML format – API doesn’t care about angle brackets and quotes • Just the data and its relationships
    10. 10. Intro to XML DOM Reading XML Data Introduction to XML DOM Tree-Based XML Handling 3/4 Working with Nodes xPath Expressions Q&A Contact ME • Turns this XML content: <bookstore> <book genre="novel" publicationdate="1997" ISBN="1-861001-57-8"> <title>Pride And Prejudice</title> <author> <first-name>Jane</first-name> <last-name>Austen</last-name> </author> <price>24.95</price> </book> </bookstore>
    11. 11. Intro to XML DOM Reading XML Data Introduction to XML DOM Tree-Based XML Handling Working with Nodes xPath Expressions Q&A • Into this data structure bookstore Contact ME book publication date publication date publication date title author firstname lastname price 4/4
    12. 12. Intro to XML DOM Reading XML Data Introduction to XML DOM Non-Cached XML Handling Working with Nodes xPath Expressions Q&A Contact ME • Allows for fast access – No waiting for data to load • Requires less overhead • Doesn’t allow random access to data – Data flows to application in the order it appears within the original XML stream • Not covered here
    13. 13. Intro to XML DOM Reading XML Data Introduction to XML DOM What is XML DOM? Working with Nodes xPath Expressions Q&A Contact ME • To provide standard mechanism for programmatically working with data – W3C proposed a standard API for working with XML – XML Document Object Model is the result • Provides software vendors with API for manipulating XML data • Before .NET, VB developers used MSXML COM component – Now use System.Xml namespace
    14. 14. Demonstaration -- 0 investigating a sample file – Grocery store
    15. 15. Intro to XML DOM Introduction to XML DOM Sample file as Datastructure Reading XML Data Working with Nodes Grocery Store xPath Expressions departments Q&A Contact ME department department Name = “Fruits” Name = “Breads” #text Brain’s Groceries Item Item Id=“B1” Store name Name Id=“F1” Name #text Wonder Bread Item Type = “Muffin” Id=“B2” Name #text Blueberry Muffin #text Apple Price Price Price #text 3.99 #text 1.29 New New #text 0.99
    16. 16. Intro to XML DOM Reading XML Data Reading XML Data Load XML Data Working with Nodes xPath Expressions Q&A Contact ME • Need to load XML data into an XmlDocument object – Parse persisted XML into tree-based structure in memory • Create instance of XmlDocument object • Call Load method, providing file name – Other alternative means for loading, as well • Work with data in tree-based format • Retrieve OuterXml property to view XML
    17. 17. Intro to XML DOM Reading XML Data Reading XML Data Working with Node’s children 1/2 Working with Nodes xPath Expressions Q&A Contact ME • Calling Load method fills data structure – Single root element, possibly other nodes • Sample root node contains three children – XML declaration (processing instruction) – Comment – GroceryStore document element • XmlDocument inherits from XmlNode class – Document == root node • Use HasChildNodes and ChildNodes
    18. 18. Intro to XML DOM Reading XML Data Reading XML Data Working with Node’s children Working with Nodes xPath Expressions Q&A Contact ME • Interesting issues: – No recursion • Just displays information about the immediate children of selected node – Name properties differ • xml, #comment, #text, real names – Checking HasChildNodes is redundant • If your intent is to iterate through the nodes 2/2
    19. 19. Demonstaration -- 1 Load XML Data Child Nodes Visit All Nodes Elements By Name Text Nodes
    20. 20. Intro to XML DOM Reading XML Data Working with Nodes Retrieve nodes matching Criteria Working with Nodes xPath Expressions Q&A Contact ME • GetElementsByTagName works well, but limited • For more general criteria, use SelectNodes or SelectSingleNode methods of XmlNode • Can pass XPath query – XPath is powerful, and complex – Can only touch on it here
    21. 21. Intro to XML DOM Reading XML Data Working with Nodes Getting started with xPath 1/2 Working with Nodes xPath Expressions Q&A Contact ME • xPath expressions "know" where to start looking, based on object whose method you call • Use "//" separator to indicate what follows is a descendant, at any level • Use "/" separator to indicate what follows is a direct descendant
    22. 22. Intro to XML DOM Reading XML Data Working with Nodes Getting started with xPath 2/2 Working with Nodes xPath Expressions Q&A Contact ME • For example: – //Department//Name • Looks within Department node (at any lower level) for Name (at any level below Department) • Use "*" to look for any element name • To match root node of starting object, simply list the name
    23. 23. Intro to XML DOM Reading XML Data Working with nodes More about XPATH 1/2 Working with Nodes xPath Expressions Q&A Contact ME • To match existence of a child node, – use: //Item[New]/Name • Looks for Item that contains a New element, then matches Name element of the Item • To match existence of an attribute, use: – //Item[@Type] • Looks for a Department node with a Name attribute
    24. 24. Intro to XML DOM Reading XML Data Working with nodes More about XPATH 2/2 Working with Nodes xPath Expressions Q&A • To match specific values, use: – //Department[@Name= 'Fruits'] Contact ME • Once you have the XPath expression, and the retrieved node list, iterate through nodes
    25. 25. Intro to XML DOM Reading XML Data Working with nodes Reference to specific Node Working with Nodes xPath Expressions Q&A Contact ME • Use XmlNode.SelectSingleNode method • Retrieves reference to first matching node • Best when: – You know there 's only one match – You actually want a relative (parent?) of the node you find
    26. 26. Demonstaration -- 2 Select Nodes Select Single Node Find Relatives
    27. 27. Intro to XML DOM Reading XML Data Working with nodes Retrieve Node attributes Working with Nodes xPath Expressions Q&A Contact ME • XmlNode.Attributes property retrieves XmlAttributeCollection object • Collection of XmlAttribute objects – Nodes with a name, and a value • If you just want a single attribute – Use GetNamedItem method of Attributes collection • Display all department names? – Name is an attribute of Department element
    28. 28. Demonstaration -- 3 Retrieve Attributes Single Attribute
    29. 29. Intro to XML DOM XmlDocument Conclusion Reading XML Data Working with Nodes xPath Expressions Q&A Contact ME • Derived from the XmlNode class • Represents an entire (in memory) XML document • Supports DOM Level 1 and Level 2 Core functionality • Reading & writing built on top of XmlReader & XmlWriter • Load a document and generate the DOM – Using: URI, file, XmlReader, XmlTextReader or Stream
    30. 30. Intro to XML DOM Reading XML Data Summary Working with Nodes xPath Expressions Q&A Contact ME • In this session, we looked into: – How to load XML data into memory, using the XmlDocument class – How to read through XML data • retrieving elements by name • by using XPATH • by relative path – How to deal with node attributes
    31. 31. Intro to XML DOM Reading XML Data Questions ? Working with Nodes xPath Expressions Q&A Contact ME • Request you to drop me a line • Doesn’t mean that you forget to post them at B.NET • You can expect reply from both mail & at the discussion thread
    32. 32. Intro to XML DOM Reading XML Data Working with Nodes xPath Expressions Q&A Contact ME The Webcast Quiz! • Four questions, multiple choice type – More than one maybe correct • Two lucky winners will win an Orchid Music Player • If you participate in the contest and are among the 2 lucky winners, your name will be featured on http://www.microsoft.com/india/web casts/
    33. 33. Intro to XML DOM Reading XML Data Working with Nodes 1. What are the key themes in the Data Platform track at TechEd 2006 India? xPath Expressions Q&A Contact ME A) Programming, Database Management and BI B) Service Oriented Architecture and Robust Data Management C) Integrated D) Future of Solution Scenarios Computing and role of real-world Data Management Intelligence
    34. 34. Intro to XML DOM Reading XML Data 2. Select 3 core themes under Data Management at Tech.Ed 2006 India. Working with Nodes xPath Expressions Q&A A) Security B) Monitoring and Analysis C) Scalability D) Robust integration of Development Tools and RDBMS Contact ME
    35. 35. Intro to XML DOM Reading XML Data 3. What is the association between Tech.Ed-India 2006 and Vineet Gupta? Working with Nodes xPath Expressions Q&A A) Track Owner B) Speaker C) Event Owner D) Keynote Speaker Contact ME
    36. 36. Intro to XML DOM 4. What is SOA? Reading XML Data Working with Nodes xPath Expressions Q&A Contact ME A) Service Oriented Architecture B) Solutions Oriented Architecture C) Security Oriented Architecture D) Scalable Operational Architecture
    37. 37. Intro to XML DOM Reading XML Data How to Participate Working with Nodes xPath Expressions Q&A Contact ME • Please send your responses to response@erfolgcs.com – Subject = “Microsoft Webcast Contest – TechEd 2006 – Data Platform and Architecture”
    38. 38. Intro to XML DOM Reading XML Data Working with Nodes xPath Expressions Q&A Contact ME © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

    ×