Ersetzen von Sonderzeichen in XSLT
Möchte ich entfernen, andere Zeichen als Buchstaben aus einem string in XSLT. Zum Beispiel
<Name>O'Niel</Name> = <Name>ONiel</Name>
<Name>St Peter</Name> = <Name>StPeter</Name>
<Name>A.David</Name> = <Name>ADavid</Name>
Können, verwenden wir Reguläre Ausdrücke in XSLT, dies zu tun? Das ist der richtige Weg, um dies zu implementieren?
EDIT: Das muss getan auf XSLT 1.0.
- überprüfen Sie meine Antwort, wie es zu tun, ohne RegExp, die nicht unterstützt werden in XSLT/XPath 1.0, die durch die Art und Weise.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine Reine XSLT-Weg, dies zu tun.
Ergebnis gegen dieses Beispiel:
Werden:
translate
ist eine viel bessere Lösung für das anwenden des weißen oder einfache eins-zu-eins-Ersatz.translate
für "blacklist" auch. Es wäre sogar einfacher. Keine Notwendigkeit für die Rekursion, wenn Sie nicht brauchen, "string an einen anderen string" ersetzen.translate
wenn Sie string-Werte von Knoten und Attributen.Hier ist ein 2.0 option:
EDIT: Sorry...die 1.0 Anforderung wurde Hinzugefügt, nachdem ich begann, auf meine Antwort.
XML
XSL
Ausgabe
Ich gerade eine Funktion, basierend auf der code in diesem Beispiel...
und ein Beispiel für die Verwendung wäre wie folgt: