[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: problem selecting node sets
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|