RE: [xsl] Trouble selecting appropriate node-set depending on parameters

Subject: RE: [xsl] Trouble selecting appropriate node-set depending on parameters
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 28 Sep 2004 08:40:00 +0100
If you give each parameter a default value (on which never occurs in the
data), say

<xsl:param name="PLATFORM" select="'#'"/>

then you can write the corresponding predicate as

/platform[@name=$PLATFORM or $PLATFORM='#']

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Travis [mailto:travis@xxxxxxxxxxxxxx] 
> Sent: 28 September 2004 00:26
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Trouble selecting appropriate node-set 
> depending on parameters
> 
> Hi All,
> 
> I'm new to the list and XSL.  So 1st of all, greetings to you 
> all.  I'm
> hoping someone here can point me in the right direction.
> 
> I'm writing a small xsl stylesheet to select a subset of 
> nodes from an xml
> document.  The important part looks like this...
> 
> <xsl:param name="PRODUCTGROUP" />
> <xsl:param name="PLATFORM"  />
> <xsl:param name="ITEM" />
> 
> <xsl:for-each select="/store/productGroup[@type =
> $PRODUCTGROUP]/platform[@type=$PLATFORM]/item[@type=$ITEM]">
> 
> etc..
> 
> 
> What happens is I pass in the values of productgroup, 
> platform and item with
> php.  I can then retrieve a list of all items the attributes 
> of which match
> the criteria.  This seems to work fine, the only trouble is, 
> I'd like in
> some cases to be able to choose all items, regardless of 
> attributes, like
> so...
> 
> <xsl:for-each select="/store/productGroup/platform/item">
> 
> or any combination, like so...
> 
> <xsl:for-each 
> select="/store/productGroup/platform[@type=$PLATFORM]/item">
> 
> I guess I'm a bit unclear how to be able to choose between multiple
> node-sets, depending on the whether or not one of the 
> parameters is set.
> I've been searching for info on this most of the afternoon, 
> but can't seem
> to find much.
> 
> If anyone has any suggestions, I'd be deeply appreciative.
> 
> Thanks!
> 
> -Travis
> 
> 
> 
> 
> 
> 
> 
> 
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.760 / Virus Database: 509 - Release Date: 9/10/2004

Current Thread