【发布时间】:2016-01-19 17:52:05
【问题描述】:
我有一个 XSLT 1.0 转换要编写,但我没有为我的问题找到在线好的解决方案。我有以下 XML 示例:
<?xml version="1.0" encoding="utf-8"?>
<MainDoc>
<node1>
<node2>
<User>jsmith</User>
<Amount>1,23</Amount>
</node2>
<node2>
<User>abrown</User>
<Amount>4,56</Amount>
</node2>
</node1>
正如您所见,sum 函数由于逗号而无法工作。我需要的是对所有的 Amount 值求和,即 1,23 + 4,56 + 等......
我尝试了各种解决方案,但均未成功。大多数情况下,我找到了基本示例,但没有像这种情况那样。
问题是我想从 XSLT 代码调用转换,例如:
<xsl:call-template name="sumAll">
<xsl:with-param name="node" select="/MainDoc/node1/node2/Amount"/>
</xsl:call-template>
这样,它将汇总 /MainDoc/node1/node2 路径中“Amount”的所有值。
感谢任何帮助
【问题讨论】:
-
对于初学者来说,如果您认为“1,23”表示数值1.23,那么您需要使用XPath 要求的数字格式,使用小数点。 w3.org/TR/xmlschema-2/#decimal