对于每个xslt

时间:2013-12-27 19:40:58

标签: xslt-2.0

##我需要迭代逗号来打破xslt中逗号之间的字符。最多15个单词可以用逗号##

分隔
For example  

`Input  

<root>  
<child>A,B,C,D</child>  
</root>  

Output  
<root>  
<List>A</List>  
<List>B</List>  
<List>C</List>
<List>D</List>  `

2 个答案:

答案 0 :(得分:0)

您可以使用 fn:tokenize 来完成此操作。它通过分隔符分隔一个字符串,并返回没有分隔符的单个字母。

 fn:tokenize("abracadabra", "(ab)|(a)") returns ("", "r", "c", "d", "r", "")

供进一步参考:http://www.w3.org/TR/xpath-functions/#func-tokenize

答案 1 :(得分:0)

你确定你正在使用xslt 2.0,因为fn:tokenize应该可以工作:

(不要使用'fn'命名空间,这是函数中xpath构建的默认命名空间)

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

    <xsl:template match="/root">
        <output>
            <xsl:for-each select="tokenize(child, ',')">
                <child><xsl:value-of select="."/></child>
            </xsl:for-each>
        </output>
    </xsl:template>

</xsl:transform>

实施例: http://xsltransform.net/eiQZDbf