Re: [xsl] Filtering, xslt 2.0

Subject: Re: [xsl] Filtering, xslt 2.0
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 2 Nov 2022 13:11:34 -0000
Am 11/2/2022 um 2:01 PM schrieb Dave Pawson dave.pawson@xxxxxxxxx:
On Wed, 2 Nov 2022 at 12:34, David Carlisle d.p.carlisle@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:


On Wed, 2 Nov 2022 at 12:13, Dave Pawson dave.pawson@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
You should use xs:string not xs:string* as if you passed in a sequence your
later tokenize would fail.

I'd do


<xsl:param name="types" as="xs:string*"/>
<xsl:variable name="typesseq" as="xs:string*" select=" tokenize($types, ',
*') />

Then use the sequence explicitly rather than relying on the optimiser to
avoid tokenizing on every use.


<xsl:when test="type = $typesseq ">

David
Which seems to tokenize once rather than n times? Agreed more
efficient (not a concern with my use)
I don't understand
select=" tokenize($types, ', *')

The 'token' seems to be ,*
where I tokenize on , only?

Is that significant please?





I would say it depends on your input data, if you know for sure (and on
the command line with a parameter it is likely) that you always have
only the comma as a separator and no (optional) spaces then you can
tokenize on the "," alone safely. I guess David wanted to cater for e.g.
"a, b, c" e.g. comma plus spaces between tokens.

Current Thread