替换XSLT 1.0中的字符

Kun*_*dan 0 xml xslt xslt-1.0

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

我该如何格式化这个数字?我不想为它使用任何模板.

Sea*_*kin 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>
Run Code Online (Sandbox Code Playgroud)

......将改变这一输入......

<t>19778.40</t>
Run Code Online (Sandbox Code Playgroud)

......进入这...

The input number with European formatting is 19778,40
Run Code Online (Sandbox Code Playgroud)

要么

像这样使用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>
Run Code Online (Sandbox Code Playgroud)