2009-10-12 21 views
6

Ich muss bestimmte Zeichen ersetzen können, damit ich sie als CSS-Klassen verwenden kann.Mehrere Zeichen in einem String ersetzen (XSLT)

Ich habe Strings wie, Klasse (Name), Klasse & Name, neben anderen, die keine gültigen CSS-Klassen sind (Soweit ich das beurteilen kann).

Wie kann ich die Funktion ersetzen mehrere chracters zu ersetzen,

Z.B.

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

Aber ist es möglich, dies für mehrere Zeichen zu tun?

tut Übersetzen scheinen mit &

Beispiel

XML

<title>Mary & the Wolf<title> 

XSLT

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

Deshalb möchte ich die Ausgabe zu arbeiten:

MarytheWolf 

Aber im Moment bekomme ich einen Fehler mit dem & Zeichen.

Antwort

7

translate() arbeitet Charakter weise:

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

oder

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

Danke, scheint eine gute Idee zu sein, mit einem char anstelle von nichts zu ersetzen. – CLiown

+0

Was ist der & Code für XSLT? ive versucht & in der Übersetzung aber wirft einen Fehler? – CLiown

+0

'&' ist die XML-Escape-Sequenz für das Et-Zeichen. Es ist nicht, dass XSLT oder XPath es erfordern, aber XML selbst tut es. – Tomalak

1

Sie die meisten der Weg sind da:

übersetzen ('ABCD', 'CBDA', ‚CBDA ')

würde geben "ABCD".