<block4>
<tag>
<name>50K</name>
<value>/001/002/300060000120135670
CREDIT AGRICOLE ASSET MANAGEMENT</value>
</tag>
</block4>
我需要获得如下输出:
/001/002,/300060000120135670,CREDIT AGRICOLE ASSET MANAGEMENT
我在XSL中做过这样的事情,但是我没有得到我想要的输出。任何人都可以请我告诉我如何获得该输出?
<xsl:for-each select ="block4/tag[name = '50K']">
<xsl:value-of select="
concat(
substring(value,1,8),
(concat(substring(value,9,' '),',')),
substring-after(value,' ')
)
" />,<xsl:text/>
</xsl:for-each>
答案 0 :(得分:0)
为什么不使用XSLT 2.0 tokenize()
函数?
见Here
答案 1 :(得分:0)
concat
接受任意数量的参数,不需要嵌套这些调用。此外,substring
采用开头和可选长度,而不是终止字符。尝试这样的事情:
<xsl:for-each select ="block4/tag[name = '50K']">
<xsl:value-of select="
concat(
substring(value, 1, 8), ',',
substring(substring-before(value,'
'),9), ',',
substring-after(value,'
')
)
" />,<xsl:text/>
</xsl:for-each>
我保留了最后一个逗号,这是你没有真正指定的众多内容之一。