XSLT translate()不起作用

时间:2015-10-21 15:58:20

标签: xml xslt

我创建了一个用空格替换逗号和短划线的函数,问题是它是删除逗号和短划线但是它没有用短划线替换它。

例如,我在处理转换时有一个用户姓氏Smith-Jones我最终使用SmithJones而不是Smith Jones。

我的功能是:

<xsl:function name="this:prepareText">

   <xsl:param name="input-String"/>
   <xsl:value-of select="normalize-space(translate(($input-String),'&#044;&#045;', ' '))"/>

</xsl:function>

似乎我必须在这里丢失一些小东西,任何帮助都会很棒。

1 个答案:

答案 0 :(得分:2)

逗号案例实际上可能正常工作,因为translate的第三个参数在第一个字符位置包含一个空格(对应于&#044; - 逗号),但破折号情况不会。因为没有第二个替换字符,所以破折号将被替换为空。

只需在translate的第三个参数中添加另一个空格,它就可以正常工作:

<xsl:value-of select="normalize-space(translate(($input-String),'&#044;&#045;', '  '))"/>
相关问题