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: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 24 Aug 2023 07:42:49 -0000
On 24.08.2023 09:36, Roger L Costello costello@xxxxxxxxx wrote:
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?


XPath 3.1 has the thick arrow operator => e.g.


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


But as the replacement seems to be the same I wonder why you don't use regex-group(1) => replace('[ /,]', '_')

Current Thread