|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Do something if no items in for-each meet criteria
There are two approaches.
(1) read the input twice
for-each select="xxx"
yyy
/for-each
if (not(xxx)) message
(2) put the output in a variable
variable v
for-each select="xxx"
yyy
/for-each
/variable
choose
when test="$v=''" message /when
otherwise copy-of select=$v /otherwise
/choose
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Peter Hollingsworth
> Sent: 12 September 2003 00:12
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Do something if no items in for-each meet criteria
>
>
> I'm trying to
> 1) go through a set of nodes
> 2) if any matches my criteria, display it
> 3) if NONE matches my criteria, display a message like "None"
>
> For example, imagine this xml listing some animals:
> <animal>
> <type>snake</type>
> <furry>false</furry>
> </animal>
> <animal>
> <type>fish</type>
> <furry>false</furry>
> </animal>
>
> and this XSL that lists all the ones with fur:
> The following animals are furry:<br/>
> <xsl:for-each select="animal">
> <xsl:if test="furry = 'true'">
> <xsl:value-of select="type"/><br/>
> </xsl:if>
> </xsl:for-each>
> [if no animals were furry, print "None are furry"] <---how
> can I do this?
>
> Any way I can accomplish what I'm trying to do on the last line above?
>
> Thanks.
>
> --Peter
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
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
|

Cart








