xsl-list
[Top] [All Lists]

Re: [xsl] Filter by array parameter

2006-10-28 02:21:19
----- 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>
--~--

<Prev in Thread] Current Thread [Next in Thread>