This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
problem selecting node sets
- To: xsl-list at mulberrytech dot com
- Subject: problem selecting node sets
- From: Paul Madsen <paul dot madsen at coventus dot com>
- Date: Thu, 09 Nov 2000 15:55:26 -0500
- Organization: Coventus Networks
- Reply-To: xsl-list at mulberrytech dot com
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. 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. For instance, in the above, the second <activity> should
ignore the third and grab the value from the fourth instead (because the
third is of type 'hotel')
The following variable grabs the 'start' attribute regardless of the
'type' attribute.
<xsl:variable name="nexttime"
select="following-sibling::activity[1]/@time"/>
I have experimented with the following.
<xsl:variable name="nexttype"
select="following-sibling::activity[1]@type"/>
<xsl:variable name="nexttime"
select="following-sibling::activity[position(1) = 1 and $nexttype !=
'hotel']/@time"/>
but it doesn't seem to work.
I believe that an appropriately defined <xsl:key> is the answer but I'm
having trouble with the specifics.
thanks for any guidance
--
Paul Madsen
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list