Home arrow XML arrow Page 6 - XPath Basics

Playing Chicken - 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
Let's try a slightly more complex example:


<?xml version="1.0"?>

<recipe>

<name>Chicken Tikka</name> <author>Anonymous</author> <date>1 June 1999</date>

<ingredients>

<item> <desc>Boneless chicken breasts</desc> <quantity>2</quantity> </item>

<item> <desc>Chopped onions</desc> <quantity>2</quantity> </item>

<item> <desc>Ginger</desc> <quantity>1 tsp</quantity> </item>

<item> <desc>Garlic</desc> <quantity>1 tsp</quantity> </item>

<item> <desc>Red chili powder</desc> <quantity>1 tsp</quantity> </item>

<item> <desc>Coriander seeds</desc> <quantity>1 tsp</quantity> </item>

<item> <desc>Lime juice</desc> <quantity>2 tbsp</quantity> </item>

<item> <desc>Butter</desc> <quantity>1 tbsp</quantity> </item> </ingredients>

<servings>3</servings>

<process> <step>Cut chicken into cubes, wash and apply lime juice and salt</step> <step>Add ginger, garlic, chili, coriander and lime juice in a separate bowl</step> <step>Mix well, and add chicken to marinate for 3-4 hours</step> <step>Place chicken pieces on skewers and barbeque</step> <step>Remove, apply butter, and barbeque again until meat is tender</step> <step>Garnish with lemon and chopped onions</step> </process>

</recipe>


Now, if I wanted to get to the third ingredient, I would use the path


/recipe/ingredients/item[3]/desc/text()


whish references the text string


Ginger


Note the predicate used to get the third item in the list.

If I needed to get the number of servings, I could use


/recipe/servings/text()


or


//servings/text()


The // shortcut will select elements of that name anywhere below the current context node, and is equivalent to the "descendant-or-self" axis. So the path


//item


would select all the "item" nodes in the document, while the path


//item[7]/quantity


would reference the "quantity" element under the seventh "item" element and the path


//item[7]/quantity/text()


would reference the text node


2 tbsp


If I wanted to get really funky, I could use a different predicate to identify the appropriate node - the paths


//item[7]/quantity/text()


and


//item[desc/text()='Lime juice']/quantity/text()


are equivalent.

More examples of this nature are available in the XPath specification at http://www.w3.org/TR/xpath.html

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: