Re: Selection based on attribute value

Subject: Re: Selection based on attribute value
From: Phil Lanch <phil@xxxxxxxxxxxxxxx>
Date: Thu, 09 Dec 1999 16:56:46 +0000
Try something like these 2:

<xsl:value-of
select="//Portal:ScreenPreferences/Portal:Screen[@primary='true']/Portal:screenTitle"/>

<xsl:value-of
select="//Portal:ScreenPreferences/Portal:Screen[@primary='true']/Portal:screenColor"/>

(If you're already inside a template for Portal:ScreenPreferences, you
can obvoiusly shorten those expressions.)

The key bit is [@primary='true'].

When we've gotten to Portal:Screen, we have a node-list of all the
Portal:Screen nodes: then [@primary='true'] selects from that list just
those nodes that have a primary attribute with value "true" -- which
happens to be just the one node. Then it's simple to get it's children.

Brett McLaughlin wrote:
> 
> Given the following XML document fragment:
> 
>   <Portal:ScreenPreferences>
>    <Portal:Screen primary="true">
>     <Portal:screenTitle>Portal</Portal:screenTitle>
>     <Portal:screenColor>#FFCC66</Portal:screenColor>
>    </Portal:Screen>
>    <Portal:Screen>
>     <Portal:screenTitle>Services</Portal:screenTitle>
>     <Portal:screenColor>#CC6600</Portal:screenColor>
>    </Portal:Screen>
>    <Portal:Screen>
>     <Portal:screenTitle>Intranet</Portal:screenTitle>
>     <Portal:screenColor>#0099CC</Portal:screenColor>
>    </Portal:Screen>
>    <Portal:Screen>
>     <Portal:screenTitle>Control Panel</Portal:screenTitle>
>     <Portal:screenColor>#CC9933</Portal:screenColor>
>    </Portal:Screen>
>    <Portal:Screen>
>     <Portal:screenTitle>E-Commerce</Portal:screenTitle>
>     <Portal:screenColor>#339900</Portal:screenColor>
>    </Portal:Screen>
>    <Portal:Screen>
>     <Portal:screenTitle>Preferences</Portal:screenTitle>
>     <Portal:screenColor>#CCEECC</Portal:screenColor>
>    </Portal:Screen>
>   </Portal:ScreenPreferences>
> 
> I want (in my XSL stylesheet) to be able to get the color and title for the
> <Portal:Screen> element where the attribute 'primary' has the value true.  I
> will take care of all the IMPLIED rules and so forth in the DTD; I just am
> not sure how to select this data... any help is appreciated.

-- 

bah...glugglug...humbug

phil

*witnesh relocation program alumnush*


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


Current Thread