2009-10-12 18 views
6

Je dois pouvoir remplacer certains caractères pour pouvoir les utiliser comme classes CSS.Remplacer plusieurs caractères dans une chaîne (XSLT)

J'ai des chaînes comme, classe (nom), classe & nom, mais d'autres qui ne sont pas des classes CSS valides (Autant que je sache).

Comment puis-je utiliser la fonction de remplacement pour remplacer plusieurs chracters,

Par ex

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

Mais est-il possible de faire cela pour plusieurs caractères?

Traduire ne marche pas semblent travailler avec &

Exemple

XML

<title>Mary & the Wolf<title> 

XSLT

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

Je veux que la sortie soit:

MarytheWolf 

Mais pour le moment j'obtiens une erreur avec le caractère &.

Répondre

7

translate() fonctionne caractère sage:

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

ou

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

Merci, semble être une bonne idée de remplacer par un char plutôt que rien du tout. – CLiown

+0

Quel est le & code pour XSLT? ive essayé & dans la traduction mais jette une erreur? – CLiown

+0

'&' est la séquence d'échappement XML pour l'esperluette. Ce n'est pas que XSLT ou XPath l'exigent, mais c'est XML lui-même. – Tomalak

1

vous êtes le plus du chemin:

traduire ('abcd', 'CBDA', « CBDA ')

donnerait' ABCD '.

Questions connexes