Wie kann ich die Streifen Akzente von Zeichen, die in XSL?

Ich weiter suchen, aber nicht finden können, ein XSL-Funktion entspricht das "normalize-space" Zeichen. Das heißt, meine Inhalte akzentuiert UNICODE-Zeichen, die ist toll, aber von diesem Inhalt, ich bin erstellen mit dem Namen, wo ich nicht wollen, dass diese Akzente.

So, ist es etwas, das ich im Blick, oder nicht richtig googeln, leicht zu verarbeiten-Zeichen?

In den XML-Daten:

<filename>gri_gonéwiththèw00mitc</filename>

Im XSLT-stylesheet:

<xsl:variable name="file">
    <xsl:value-of select="filename"/>
</xsl:variable>

<xsl:value-of select="$file"/>

Ergebnisse in "gri_gonéwiththèw00mitc"

wo

<xsl:value-of select='replace( normalize-unicode( "$file", "NFKD" ), "[^\\p{ASCII}]", "" )'/>

Ergebnisse in nichts nach.

Was ich bin mit dem Ziel für ist gri_gonewiththew00mitc (keine Umlaute)

Bin ich mit der syntax falsch?

  • Entfernen von Akzenten funktioniert nur für eine kleine Teilmenge von Unicode-Zeichen. Soweit ich weiß, gibt es keine standard-Weg, der latinisierten Transkription von Zeichen. (Das heißt, es ist eine andere-eine für jede Sprache.)
  • Überprüfen Sie meine Antwort für die korrekte RegExp syntax.
InformationsquelleAutor LOlliffe | 2011-03-22
Schreibe einen Kommentar