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 /root/store[@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[@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 ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Filtering based on "list", Joe Fawcett | Thread | RE: [xsl] Filtering based on "list", Michael Kay |
Re: [xsl] Filtering based on "list", andrew welch | Date | RE: [xsl] Filtering based on "list", Michael Kay |
Month |