2009-10-12 4 views
6

Мне нужно иметь возможность заменять определенные символы, чтобы я мог использовать их в качестве классов CSS.Заменить несколько символов в строке (XSLT)

У меня есть строки типа, класс (имя), класс & имя, amonst другие, которые не являются допустимыми классами CSS (насколько я могу судить).

Как я могу использовать функцию замены для замены нескольких chracters,

Э.Г.

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

Но разве это возможно для нескольких символов?

Перевести не кажется, что работать с &

Пример

XML

<title>Mary & the Wolf<title> 

XSLT

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

Так что я хочу выход быть:

MarytheWolf 

Но на данный момент я получаю сообщение об ошибке с символом &.

ответ

7

translate() работает персонаж-накрест:

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

или

translate(className, ' &#?!','_____') // would replace any character 
             // in the string #1 with '_' 
+0

Спасибо, кажется, хорошая идея заменить на char, а не на ничего. – CLiown

+0

Что такое & code для XSLT? ive попробовал & в переводе, но выдает ошибку? – CLiown

+0

'&' - это escape-последовательность XML для амперсанда. Дело не в том, что XSLT или XPath требуют этого, но сам XML делает. – Tomalak

1

Вы большую часть пути туда:

перевод ('ABCD', 'CBDA', «CBDA ')

даст «ABCD».

Смежные вопросы