1

我的输入 xml 文件中有一个数字,例如19778.40,但我想通过 xslt 在输出 xml 文件中更改为19778,40(逗号而不是点)。

我怎样才能格式化这个数字?我不想为此使用任何模板。

4

1 回答 1

5

您可以使用 translate() 函数。作为说明,这个 XSLT 1.0 样式表...

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:template match="/">
<xsl:variable name="the-number" select="*/text()" />  
The input number with European formatting is <xsl:value-of select="translate($the-number,'.',',')" />
</xsl:template>

</xsl:stylesheet>

...将转换此输入...

<t>19778.40</t>

……进入这个……

The input number with European formatting is 19778,40

或者

像这样使用 format-number() 函数...

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:decimal-format name="euro" decimal-separator="," grouping-separator="." />

<xsl:template match="/">
<xsl:variable name="the-number" select="*/text()" />  
The input number with European formatting is <xsl:value-of select="format-number($the-number,'#,00','euro')" />
</xsl:template>

</xsl:stylesheet>
于 2012-07-30T07:40:57.327 回答