【问题标题】:For each in xslt对于 xslt 中的每个
【发布时间】:2013-12-27 19:40:58
【问题描述】:

##我需要遍历逗号来打断 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>  `

【问题讨论】:

  • 请帮助,因为我是新手。

标签: xslt-2.0


【解决方案1】:

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

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

更多参考:http://www.w3.org/TR/xpath-functions/#func-tokenize

【讨论】:

  • 感谢您的快速响应。但是我使用的是 Oracle Jdeveloper 版本 11.1.1.5.0。 fn:tokenize 不受它支持。
  • 请尽量具体说明您的问题中使用的技术。
【解决方案2】:

您确定您使用的是 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 2011-05-03
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多