2009-10-12 17 views
6

Potrzebuję być w stanie zastąpić pewne znaki, aby móc używać ich jako klas CSS.Zamień wiele znaków w ciągu znaków (XSLT)

Mam ciągi znaków, klasa (nazwa), klasa & nazwa, amonst innych, które nie są poprawnymi klasami CSS (o ile mogę powiedzieć).

Jak mogę użyć zastąpić funkcję zastąpienie wielu chracters,

Np

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

Ale czy da się to zrobić dla wielu znaków?

Translate nie robi wydaje się działać z &

przykładu

XML

<title>Mary & the Wolf<title> 

XSLT

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

Więc chcę być wyjście:

MarytheWolf 

Ale w tej chwili pojawia się błąd z postacią &.

Odpowiedz

7

translate() działa charakter mądry:

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

lub

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

Dzięki, wydaje się dobrym pomysłem na zastąpienie char, a nie nic. – CLiown

+0

Co to jest kod & na XSLT? Ive tried & w tłumaczeniu, ale zgłasza błąd? – CLiown

+0

'&' jest sekwencją ucieczki XML dla znaku ampersand. Nie chodzi o to, że XSLT lub XPath tego wymaga, ale sam XML to robi. – Tomalak

1

Jesteś większość drogi tam:

translate ('abcd', '', „CBDA CBDA ')

podaje "ABCD".

Powiązane problemy