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