如何格式化节点然后对这些节点求和?
我正在使用sum函数然后格式化。
<xsl:value-of select="format-number(sum(/Item/Total),'£#.00')"/>
但是当我尝试做的时候
<xsl:value-of select="sum(format-number(/Item/Total,'£#.00'))"/>
它给我一个错误,说总和不能像那样应用。
这用于通过C#
生成报告答案 0 :(得分:1)
我需要在总结之前对这些节点进行舍入
在XSLT 1.0中,您必须分两步完成此操作。给出:
<强> XML 强>
<root>
<item id="1">
<amount>1.996</amount>
</item>
<item id="2">
<amount>2.495</amount>
</item>
<item id="3">
<amount>10</amount>
</item>
</root>
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/root">
<!-- first pass -->
<xsl:variable name="rounded-amounts">
<xsl:for-each select="item">
<amt>
<xsl:value-of select="round(amount * 100) div 100" />
</amt>
</xsl:for-each>
</xsl:variable>
<!-- final pass -->
<output>
<xsl:value-of select="sum(exsl:node-set($rounded-amounts)/amt)" />
</output>
</xsl:template>
</xsl:stylesheet>
<强>结果强>
<?xml version="1.0" encoding="UTF-8"?>
<output>14.5</output>