我是XSLT的新手。我试图创建一个从字符串中删除任何破折号(又名“ - ”)的函数,然后在前两个字符后面用短划线返回字符串,然后是剩余的7个字符。
我的XSL看起来像这样:
<fn:function name="nx:DashedResult">
<xsl:param name="String"/>
<fn:result select="fn:string-join((substring(translate($String,'-',''),1,2),substring(translate($String,'-',''),3,9)),'-')"/>
</fn:function>
我得到的错误是:
Error in expression fn:string-join((substring(translate($String,'-',''),1,2),substring(translate($String,'-',''),3,9)),'-'): expected ")", found ","
非常感谢任何帮助。
答案 0 :(得分:1)
嗯,您需要在)
中添加结束string-join((substring(translate($String,'-',''),1,2),substring(translate($String,'-',''),3,9))),'-')
。但是XSLT没有fn:result
元素,fn
命名空间也不是用于XSLT元素的命名空间。
答案 1 :(得分:0)
因此,如果我正确思考,如果输入abc-def-ghij-kl
,您需要输出ab-cdefghi
若是,请尝试:
concat(substring(translate($string, '-', ''),1,2), '-', substring(translate($string, '-', ''),3,7))
这会添加前2个破折号字符,后跟破折号,后跟前7个破折号字符。