0

私は以下のような文字列を持っています、

788565591,1,444,0,15956,555,126.99,15956,666,0,15956,777,101.66,15956
788565591,1,444,0,,555,126.99,,,0,15956,777

文字列内のコンマの数を調べるために xslt テンプレートを作成しようとしています。カウントに基づいて、長さを 32 に正規化するためにさらにいくつか追加/削除する必要があります。

アドバイスしてください/コードの形でアイデアを教えてください。

4

1 に答える 1

3

現在のコンテキスト ノードが、処理したい値を持つノードであると仮定すると、

<xsl:variable name="numCommas"
              select="string-length() - string-length(translate(., ',', ''))" />

文字列内のコンマの数が得られます(文字通り、文字列の長さからすべてのコンマが削除された文字列の長さを引いたものです)。次に、32 個のコンマを含む変数がある場合 (これは、テンプレートの外部で定義されたグローバル変数である可能性があります):

<xsl:variable name="thirtyTwoCommas"
              select="',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'" />

次に、 を使用substring($thirtyTwoCommas, $numCommas + 1)して、元の文字列に追加して最大 32 個にする必要がある余分なコンマの数を含む文字列を取得できます。元の文字列に 32 個以上のコンマがある場合、これは空になります。

于 2013-09-03T15:05:32.577 に答える