首页 > 解决方案 > 复杂的 XSLT 字符串拆分?

问题描述

如何在 XSLT 中拆分此字符串

cast one : 'T','0','1','2'

cast two: 'T','0','1' 

case three: 'T','0'

i tried substring but the result is wrong 

substring-before(substring-after(String,','),',')

我希望拆分后的结果为 0

标签: xsltxslt-1.0

解决方案


对于XSLT 1.0 ,您可以为字符应用额外的substring-before()和:substring-after()'

substring-before(substring-after(substring-after("'T','0'", ','), "'"), "'")

对于XSLT 2.0 (及更高版本),还有其他选项。

您可以使用该tokenize()函数将字符串拆分为,,然后选择第二项,然后使用translate()'字符转换为空:

translate(tokenize("'T','0','1','2'", ',')[2], "'", "")

或者代替translate(),您可以使用replace()正则表达式捕获组,然后选择单引号内的值:

replace(tokenize("'T','0','1','2'", ',')[2], "'(.*)'", "$1")

推荐阅读