我有以下 XML 结构:
<example>
<data>
<numberGer>3,40</numberGer>
</data>
<data>
<numberGer>7,40</numberGer>
</data>
<data>
<numberGer>17,40</numberGer>
</data>
</example>
我需要所有“numberGer”节点的总和。数字的格式是一个问题。由于使用了“,”,函数“sum”会产生错误。所以像 sum(//numberGer) 这样的东西不起作用。我可以使用 XSLT 2.0 函数。
我想我需要编写一个递归模板,它采用计算值和节点列表。
就像是:
<xsl:template name="addGerNumbers">
<xsl:param name="number"/>
<xsl:param name="nodes"/>
<xsl:choose>
<xsl:when test="$nodes">
<xsl:variable name="recursive_result">
...
<xsl:call-template name="addGerNumbers">
...
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$number + $recursive_result"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
最后,我需要一个值作为结果。
如何在 XSL for-each 循环中对所有先前的节点进行 XPath sum()?对我不起作用,因为我最后需要一个数字。