Home arrow XML arrow Page 5 - XPath Basics

Proof Of The Pudding - XML

One of the fundamental constructs for XSL transformations and XML links, XPath is nonetheless one of the lesser lights of the XML universe. However, if you're serious about developing your XML skills, you need to know it inside out - and this tutorial has all you need to get started.

TABLE OF CONTENTS:
  1. XPath Basics
  2. Dog Days
  3. First Steps
  4. Revolving Around An Axis
  5. Proof Of The Pudding
  6. Playing Chicken
  7. Operating With Extreme Caution
  8. Be Cool
  9. The Next Step
By: Vikram Vaswani, (c) Melonfire
Rating: starstarstarstarstar / 6
August 15, 2001

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement
By combining the axis and node test into a location step, and combining multiple location steps into a location path, it becomes possible to locate specific nodes with the document tree quite easily. Using the following XML sample, let's consider some examples.


<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="recipe.xsl"?> <movie id="67" genre="sci-fi"> <title>X-Men</title> <!-- in case you didn't know, this is based on the comic - Ed --> <cast>Hugh Jackman, Patrick Stewart and Ian McKellen</cast> <director>Bryan Singer</director> <year>2000</year> <?play_trailer?> </movie>


The path


/child::movie/child::cast/child::text()


references the text node


Hugh Jackman, Patrick Stewart and Ian McKellen


In order to make this a little easier to read (and write), XPath assumes a default axis of "child" if none is specified - which means that I could also write the above path as


/movie/cast/text()


Similarly, the path


/movie/comment()


references the comment string


in case you didn't know, this is based on the comic - Ed


while the path


/movie/node()[8]


references the string


Bryan Singer


The * character matches all child elements of the context node, while the @ prefix indicates that attributes, rather than elements, are to be matched. The path


/movie/*


would match all the children of the "movie" element, while the path


/movie/@*


would refer to all the attributes of the movie element. In case I need a specific attribute - say, "genre", I could use the path


/movie/@genre


or the path


/movie/attribute::genre


both of which would reference the value


sci-fi


Finally, the path


/*


would reference the first element under the document root, which also happens to be the outermost element, while the path


//*


selects all the elements in the document.

This article copyright Melonfire 2001. All rights reserved.

 
 
>>> More XML Articles          >>> More By Vikram Vaswani, (c) Melonfire
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

XML ARTICLES

- Google Docs and Xpath Data Functions
- Flex Array Collection Sort and Filtering
- The Flex Tree Control
- Flex List Controls
- Working with Flex and Datagrids
- How to Set Up Podcasting and Vodcasting
- Creating an RSS Reader Application
- Building an RSS File
- An Introduction to XUL Part 6
- An Introduction to XUL Part 5
- An Introduction to XUL Part 4
- An Introduction to XUL Part 3
- An Introduction to XUL Part 2
- An Introduction to XUL Part 1
- XML Matters: Practical XML Data Design and M...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: