xsl-list
[Top] [All Lists]

Re: Filtering based on "list" of values

2006-01-09 03:47:17

since you are using 2.0 this is easy you can just use the xpath


/root/store[(_at_)location=tokenize($param,'\s*,\s*')]

as tokenize($param,'\s*,\s*') gives you a sequence caused by splitting
up your comma separated listes (taking any amount of white space either
side of the comma as part of the separator syntax, rather than as part
of the item) and then as in xpath1 @location=... is true if this
location attribute is equal to -any_ of the items in the sequence.

Of course you could save your query optimiser the effort of taking the
fixed expression out of the loop, and write instead

<xsl:variable name="seq" select="tokenize($param,'\s*,\s*')"/>

... select="/root/store[(_at_)location=$seq]"

but I think saxon will do this anyway (not that I've ever looked at
saxon's optimisation internals)

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--