You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XSL的translate函数替换字符串中的短横线与点为斜杠

解决XSLT中替换短横线和点为斜杠的问题

你的代码存在两个关键问题:

  1. 目标字符串错误:你传入translate的是字面量'string_name',这会处理这个固定字符串而非你实际要操作的变量或节点。需要替换成真实的数据源——比如当前节点用.,变量用$string_name。
  2. translate参数不匹配:translate函数的第三个参数与第二个参数按位置一一对应。当你写translate(..., '-.', '/')时,第二个参数有2个字符,第三个参数仅1个,此时第二个字符.会被删除而非替换为/。要让两个字符都替换成/,第三个参数需写成'//'(与第二个参数长度一致)。

正确示例

假设要处理的是名为$target_str的变量:

<xsl:value-of select="translate($target_str, '-.', '//')"/>

如果是处理某个节点(比如当前上下文的my-string节点):

<xsl:value-of select="translate(my-string, '-.', '//')"/>

效果验证

输入字符串abc-def.ghi经上述代码处理后,会输出abc/def/ghi,完全符合预期。

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 04:52:37