[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Filter by array parameter
Subject: Re: [xsl] Filter by array parameter
From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx>
Date: Sat, 28 Oct 2006 10:21:00 +0100
|
----- Original Message -----
From: "Giancarlo Rossi" <giancarlo_rossi@xxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Saturday, October 28, 2006 9:59 AM
Subject: [xsl] Filter by array parameter
I need to know how is possible to pass an array string to a Xpath
expression
to filter the results.
For example :
<xsl:param name="supplier_param" select="Alitalia,ryanair"
<xsl:for-each select="msxsl:node-set($base)/item[(supplier =
$supplier_param or not($supplier_param)) ">
In this case I must pass as parameter the value Alitalia,ryanair to get
the
results for this suppliers.
But in this way I get no result.
It' possible in xslt 1.0 pass a an Array as in SQL : WHERE IN
("value1,value2") ?
Thanks in advance.
I think you have two options, either pass the string as you do and use
string matching:
Filter: alitalia,ryanair
add separators: ,alitalia,ryanair, ($searchParam)
Compare:
msxsl:node-set($base)/item[contains(concat(',', item, ','), $searchParam)]
">
Alternatively add the parameter as a nodelist, you'll have to change it
something like <airlines><airline>alitalia</airline>.....
Then you can compare directly as you did initially.
--
Joe
|