表达式字符串连接错误:期望“)”,找到“,”

时间:2017-03-14 18:34:58

标签: xml xslt

我是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 ","

非常感谢任何帮助。

2 个答案:

答案 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个破折号字符。