我创建了一个用空格替换逗号和短划线的函数,问题是它是删除逗号和短划线但是它没有用短划线替换它。
例如,我在处理转换时有一个用户姓氏Smith-Jones我最终使用SmithJones而不是Smith Jones。
我的功能是:
<xsl:function name="this:prepareText">
<xsl:param name="input-String"/>
<xsl:value-of select="normalize-space(translate(($input-String),',-', ' '))"/>
</xsl:function>
似乎我必须在这里丢失一些小东西,任何帮助都会很棒。
答案 0 :(得分:2)
逗号案例实际上可能正常工作,因为translate
的第三个参数在第一个字符位置包含一个空格(对应于,
- 逗号),但破折号情况不会。因为没有第二个替换字符,所以破折号将被替换为空。
只需在translate
的第三个参数中添加另一个空格,它就可以正常工作:
<xsl:value-of select="normalize-space(translate(($input-String),',-', ' '))"/>