9

別のシステムにロードするために固定長のテキストに変換する必要がある大きな XML ファイルで最大 3 桁になる可能性のある XML の数値があります。

出力の長さが 15 になるように先頭にゼロを埋め込む必要があります (これは固定長のテキストです)。

例:

 - 1 becomes   000000000000001
 - 11 becomes  000000000000011
 - 250 becomes 000000000000250

私はこれを試しました:

<xsl:value-of select="substring(concat('000000000000000', msg:BankAccount/msg:Counter), 12, 15)"/>

最初に15個のゼロを取得して部分文字列を取得しますが、結果が得られるため、部分文字列を間違えたに違いありません

0000000000000000000000009LLOYDS BANK PLC
00000000000000000000000010LLOYDS BANK PLC

私も試しformat-numberましたが、NaNを返します

<xsl:value-of select="format-number(msg:BankAccount/msg:Counter, '000000000000000')"/>

「NaN」を返します

それで、私は何を間違えましたか?これを行う最良の方法は何ですか?

4

5 に答える 5

16

出力の長さが 15 になるように、先頭に 0 を埋め込む必要があります (

それは

substring(
  concat('000000000000000', msg:BankAccount/msg:Counter), 
  string-length(msg:BankAccount/msg:Counter) + 1, 
  15
)
于 2014-09-04T09:59:42.210 に答える
13

string-format を使用して行うこともできます

<xsl:value-of select="format-number(msg:BankAccount/msg:Counter, '000000000000000')" />

一般に:

<xsl:value-of select="format-number(number_you_would_like_to_padd, 'string_how_much_zeros_you_would like')" />
于 2016-09-12T14:42:05.590 に答える