----- Original Message -----
From: "Giancarlo Rossi" <giancarlo_rossi(_at_)tiscali(_dot_)it>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--