为什么 format-number 在 xslt 函数中不起作用?

问题描述 投票:0回答:1

我的代码

<xsl:template name="sumScorest">
>     <xsl:param name="pListt"/>
>     <xsl:param name="pAccumt" select="0"/>
>     <xsl:choose>
>       <xsl:when test="$pListt">
>         <xsl:variable name="vHeadt" select="$pListt[1]"/>
>         <xsl:call-template name="sumScorest">
>           <xsl:with-param name="pListt" select="$pListt[position() > 1]"/>
>           <xsl:with-param name="pAccumt" select="$pAccumt + number(substring-before(substring-after($vHeadt,'*'),'#'))"/>
>         </xsl:call-template>
>       </xsl:when>
>       <xsl:otherwise>
>         <xsl:value-of select="$pAccumt"/>
>       </xsl:otherwise>
>     </xsl:choose>
>   </xsl:template>

我调用代码的地方

<xsl:call-template name="sumScorest">
            <xsl:with-param name="pListt" select="//n1:DespatchAdvice/cac:DespatchLine/cac:Item/cbc:Description"/>
          </xsl:call-template>

输出是这样的数字(8795,885558844877),我希望小数点后有2位数字。我还希望数字以千位分隔符输出(8.795,88)。

xslt format
1个回答
0
投票

尝试改变:

  <xsl:otherwise>
    <xsl:value-of select="$pAccumt"/>
  </xsl:otherwise>

至:

<xsl:otherwise>
    <xsl:value-of select="format-number($pAccumt, '#.##0,00', 'european')"/>
</xsl:otherwise>
© www.soinside.com 2019 - 2024. All rights reserved.