XSL中的替换功能问题

时间:2019-01-22 13:35:44

标签: xslt replace translate

我有一个字符串,其中包含所有类型的特殊字符,例如点逗号#()-空格/ \,并且我以下面的方式使用了Replace函数,并遇到多个错误。我用双引号引起了逗号“”,这是正确的方法吗?也遇到#

问题

示例字符串为

#12/24 Dominic-Road,Villa(12)

这需要替换为

1224DominicRoadVilla12

到目前为止,这是我的表情:

select="replace(replace(replace(replace(replace(replace($string1, '\)', ''), '\(', ''), '\.', ''), '\-', ''), ' ', ''), '#', ''),'','','')"

但是我遇到了错误:

  

不允许将一个以上项目的序列作为replace()的第一个参数

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以简化表达方式。
将您的xsl:value替换为

<xsl:value-of select="replace($string1, '[#\-,/() .]+', '')" />

这将删除提到的特殊字符。如果需要排除更多特殊字符,请将它们添加到第二个参数中。