<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template name="rtf-encode"> <xsl:param name="str"/> <xsl:param name="escMethod">1</xsl:param> <xsl:if test="$str"> <xsl:for-each select="string-to-codepoints($str)"> <xsl:choose> <xsl:when test=". = 92">\\</xsl:when> <xsl:when test=". = 123">\{</xsl:when> <xsl:when test=". = 125">\}</xsl:when> <xsl:when test=". < 160"> <xsl:value-of select="codepoints-to-string(.)"/> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$escMethod=1"> <xsl:value-of select="concat('\u',.,'?')"/> </xsl:when> <xsl:when test="$escMethod=2"> <xsl:value-of select="concat('\''',.)"/> </xsl:when> <xsl:otherwise> <xsl:text>?</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:if> </xsl:template> </xsl:stylesheet>