Re: [xsl] Filtering based on "list" of values

Subject: Re: [xsl] Filtering based on "list" of values
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 9 Jan 2006 10:47:17 GMT
since you are using 2.0 this is easy you can just use the xpath


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[@location=$seq]"

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


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:

Current Thread