gpt4 book ai didi

xml - 如何计算 xsl 中不同数字格式的节点总和?

转载 作者:数据小太阳 更新时间:2023-10-29 02:27:17 24 4
gpt4 key购买 nike

我有以下 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>

最后我需要一个单一的值作为结果。

How to XPath sum() all previous nodes in a XSL for-each loop?对我不起作用,因为我最后需要一个数字。

最佳答案

单个 XPath 2.0 表达式就足够了:

<xsl:value-of select="sum( for $i in //numberGer return number(translate( $i, ',','.') ) )"/>

for 循环将转换每个值以用点替换逗号,然后将它们转换为数字。它返回您现在可以正常求和的数字序列。

关于xml - 如何计算 xsl 中不同数字格式的节点总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com