1

銀行口座番号の例があります。

06101010100075911391740027

次のように表示したい:

06 1010 1010 0075 9113 9174 0027

次のコードを試しました:

<xsl:decimal-format name="european" decimal-separator="." grouping-separator="&#160;"/>
<xsl:value-of select="format-number(06101010100075911391740027,'##&#160;####&#160;####&#160;####&#160;####&#160;####&#160;0000','european')"/>

しかし、結果は予想とはほど遠いものでした:

6 1010 1010 0075 9110 0000 0000

これを修正するにはどうすればよいですか?

4

2 に答える 2

2

先頭にゼロを付けるには、# ではなく 0 の数字記号を使用する必要があります。

<xsl:value-of select="format-number(06101010100075911391740027,
        '00&#160;0000&#160;0000&#160;0000&#160;0000&#160;0000&#160;0000','european')"/>

ただし、浮動小数点の丸めにより、最後に 9 個のゼロの文字列が残ります。この数値は実際に XSLT で数値として渡されていますか、それとも文字列値ですか? 文字列値の場合は、concat() と substring() を使用できます。

<xsl:variable name="an" select="'06101010100075911391740027'" />
<xsl:value-of select="concat(substring($an, 1, 2), '&#160;',
                             substring($an, 3, 4), '&#160;',
                             substring($an, 7, 4), '&#160;',
                             substring($an, 11, 4), '&#160;',
                             substring($an, 15, 4), '&#160;',
                             substring($an, 19, 4), '&#160;',
                             substring($an, 23, 4))" />

本当に数値データ型として処理されている場合は、代わりに文字列として処理するようにアプローチを変更することが唯一の選択肢かもしれません。

于 2013-09-18T11:26:42.320 に答える
1

#inの使用法は、その位置に数字がある可能性があることformat-number()を意味します。ただし、代わりにを使用することもできます。つまり、その位置には常に数値が必要です。番号が見つからない場合は、0 が表示されます。#0

<xsl:value-of select="format-number(06101010100075911391740027,'00&#160;0000&#160;0000&#160;0000&#160;0000&#160;0000&#160')"/>

上記で正しい結果が得られるはずです。

于 2013-09-18T11:24:07.053 に答える