Re: [xsl] Need a series of character replacements ... Is there a better approach than a series of nested calls to the replace() function?

Subject: Re: [xsl] Need a series of character replacements ... Is there a better approach than a series of nested calls to the replace() function?
From: "Norm Tovey-Walsh ndw@xxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 24 Aug 2023 07:47:12 -0000
> I want to make the following character replacements in regex-group(1):
>
> Replace ' ' with '_'
> Replace '/' with '_'
> Replace ',' with '_'
>
> I implemented that by a series of nested calls to the replace() function:
>
> <xsl:variable name="elmt-name" select="replace(replace(replace(regex-group(1), ' ', '_'),'/','_'), ',', '_')"/>
>
> So many parentheses! Really hard to understand and debug.
>
> Is there a better way of doing this?

Perhaps just use translate?

   select="translate(regex-group(1), ' /,', '___')"

This is also a place where arrow notation helps:

   select="replace(regex-group(1), ' ', '_') => replace('/', '_') => replace(',', '_')"

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh <ndw@xxxxxxxxxx>
https://norm.tovey-walsh.com/

> Sometimes the only choices you have are bad ones, but you still have to
> choose.--Dr Who

[demime 1.01d removed an attachment of type application/pgp-signature which had a name of signature.asc]

Current Thread