This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

problem selecting node sets


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]