多个字符的xslt翻译

xslt translate of multiple characters

我正在尝试将多个字符翻译成 'X' 或“ ”。 如果字符是 1,C,G 它应该是 'X' 否则它是 ' '.

目前我有这个:

<xsl:variable name="correctedReturn">
    <xsl:value-of select="translate(correctedReturn,'1','X')" />
</xsl:variable>

这会将任何 1 转换为 X,但不会转换为其他任何内容。我曾尝试进行多次翻译,但它不允许我在一个变量中进行多次翻译。任何帮助都会很好,

If the character is a 1,C,G it should be an 'X' else it's a ' '.

尝试:

<xsl:value-of select="translate(correctedReturn,'1CG','XXX')" />

这会将“1”、"C" 和 "G" 翻译成 "X"。我不确定您所说的“else it's a ' '.”到底是什么意思,在这里,所有其他字符都将保持不变。如果您真的想完全删除它们,则必须执行以下操作:

<xsl:value-of select="translate(translate(correctedReturn, translate(correctedReturn, '1CG', ''), ''), '1CG','XXX')"/>

这将需要 "ABCDEFGG12345" 和 return "XXXX" 的字符串。

当然,如果您有所有其他允许字符的列表,这可能会更简单。