在XSLT中以CSV格式添加数字

时间:2013-03-23 08:13:35

标签: xslt-1.0

如何在XSLT 1中以CSV格式添加数字?

我想采取:

<num>1,2,3</num>

并得到元素中数字的总和,所以我们从上面得到6。

1 个答案:

答案 0 :(得分:0)

使用FXSL和str-split-to-words模板(我懒于编写耗时且容易出错的递归模板:)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:ext="http://exslt.org/common">
 <xsl:import href="strSplit-to-Words.xsl"/>

  <xsl:output indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <xsl:variable name="vwordNodes">
          <xsl:call-template name="str-split-to-words">
            <xsl:with-param name="pStr" select="."/>
            <xsl:with-param name="pDelimiters" select="','"/>
          </xsl:call-template>
        </xsl:variable>

       <xsl:variable name="vNums" select="ext:node-set($vwordNodes)/*"/>

       <xsl:value-of select="sum($vNums)"/>
    </xsl:template>
</xsl:stylesheet>

在提供的XML文档上应用此转换时:

<num>1,2,3</num>

产生了想要的正确结果

6