Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace Multiple Characters in a String (XSLT)

Tags:

xslt

I need to be able to replace certain characters so that I can use them as CSS classes.

I have strings like, class(name), class&name, amonst others which are not valid CSS classes (As far as i can tell).

How can I use the replace function to replace multiple chracters,

E.g.

translate(className, ' ','') (would replace a space)

But is it possible to doo this for multiple characters?

Translate doesnt seem to work with &

Example

XML

<title>Mary & the Wolf<title>

XSLT

<xsl:value-of select="translate(title, ' &','')"/></xsl:attribute>

So I want the output to be:

MarytheWolf

But at the moment I get an error with the & character.

like image 352
CLiown Avatar asked Oct 12 '09 14:10

CLiown


2 Answers

translate() works character-wise:

translate(className, ' &#?!','')  // would remove any character in the string #1

or

translate(className, ' &#?!','_____')  // would replace any character 
                                       // in the string #1 with '_'
like image 165
Tomalak Avatar answered Oct 21 '22 05:10

Tomalak


You're most of the way there:

translate('abcd', 'cbda', 'CBDA')

would give 'ABCD'.

like image 34
Colin Young Avatar answered Oct 21 '22 04:10

Colin Young