[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: problem selecting node sets

Subject: Re: problem selecting node sets
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Fri, 10 Nov 2000 11:52:34 +0000
sibling activity
Paul,

> I have XML like
>
> <agenda>
>     <activity type="flight" time="09">
>     <activity type="meeting" time="11">
>     <activity type="hotel" time="15"/>
>     <activity type="flight" time="18"/>
> </agenda>
>
> and I would like to treat the <activity> elements that have a value of
> 'hotel' for the type attribute differently that the others.

You want to treat the elements activity[@type = 'hotel'] differently.

> I want to grab the value of the 'time' attribute on the next
> <activity> with either 'meeting' or 'flight' for the value of the
> 'type' attribute, but skip any <activity> elements that have a value
> of 'hotel' for the type attribute.

The next activities are:

  following-sibling::activity

Testing whether an element's 'type' attribute is either 'meeting' or
'flight' can be done with the test:

  @type = 'meeting' or @type = 'flight'

So to get any following activities that are of @type 'meeting' or
'flight', you use:

  following-sibling::activity[@type = 'meeting' or @type = 'flight']

To get the first of these, you use the predicate [1]:

  following-sibling::activity[@type = 'meeting' or
                              @type = 'flight'][1]

And to get the 'time' attribute of those, you use the step /@time:

  following-sibling::activity[@type = 'meeting' or
                              @type = 'flight'][1]/@time

> I believe that an appropriately defined <xsl:key> is the answer but I'm
> having trouble with the specifics.

You don't really need to use a key unless you have a large number of
widely-dispersed nodes.  Where you're only looking for local elements,
like here, it's usually a lot easier to use a basic XPath expression.

I hope that helps,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.