Subject: RE: How to express a select attr in for-each for conditional or nonconditonal case.
From: "Chris Bayes" <chris@xxxxxxxxxxx>
Date: Thu, 20 Dec 2001 00:09:45 -0000
|
Yang,
You just have it the wrong way round.
<xsl:for-each select="$source[contains(., $keywrd)]">
Ciao Chris
XML/XSL Portal
http://www.bayes.co.uk/xml
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> E100 SFYang
> Sent: 19 December 2001 23:32
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: How to express a select attr in for-each for
> conditional or nonconditonal case.
>
>
> Hi, listers,
>
> I use contains function to get the selected item defined
> by select attr of param element. such as;
>
> <xsl:for-each select="$source[contains($keywrd,.)]">
>
> Of course using this expression for empty param,
> nothing will be displayed.
>
> I wonder how to modify the above select att to be able
> to display
>
> 1. selected items when keywrd is not empty.
> 2. all items when keywrd is empty.
>
> Thanks for any help in advance.
>
> Sun-fu Yang
>
> sfyang@xxxxxxxxxxxxx
>
> *** simplified xml file **
> <?xml-stylesheet href="test.xsl" type="text/xsl"?>
> <docs>
> <item>a</item>
> <item>b</item>
> <item>c</item>
> </docs>
>
>
> *** xsl file **
> <?xml version='1.0'?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:key name="sourcekey" match="item" use="."/>
> <xsl:variable name="source"
> select="/docs/item[generate-id(.)=generate-id(key('sourcekey',
> .)[1])]"/>
> <xsl:param name="keywrd" select="'a,b'"/>
> <xsl:template match="/">
>
> <xsl:for-each select="$source[contains($keywrd,.)]">
> <xsl:value-of select="."/>
> </xsl:for-each>
> </xsl:template>
> </xsl:stylesheet>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|