2017-03-14 24 views
-1

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

任何幫助將不勝感激。

回答

1

那麼,您需要在string-join((substring(translate($String,'-',''),1,2),substring(translate($String,'-',''),3,9))),'-')中添加一個關閉)。但是,XSLT沒有fn:result元素,並且fn名稱空間不是用於XSLT元素的名稱空間。

0

所以,如果我是正確的思維,給你想要的輸出ab-cdefghi

如果是這樣嘗試的abc-def-ghij-kl輸入:

concat(substring(translate($string, '-', ''),1,2), '-', substring(translate($string, '-', ''),3,7)) 

這增加了第2級破折號剝離的人物,其次是破折號,接着是前面7個破折號字符。

+0

這工作!謝謝 :) –