-PR-
egaway

XSLTで固定長データファイルを作成する方法を教えてください。もとのXMLのデータは固定長に整形されておらず、XSLTでの変換時に、空白で不足分を埋めたいと考えています。
もちろん、XSLTでCSVファイルを作成する方法は知っているので、XSLTで空白によるパディングをする方法が知りたいです。
よろしくお願いします。
  • 回答数1
  • 気になる数0

Aみんなの回答(全1件)

質問者が選んだベストアンサー

  • 2009-05-28 02:04:46
  • 回答No.1
私も,同じ疑問を抱えていて,つい最近解決しました。
ので知識不足ですが,参考になれば。。。

concat,substringを利用して以下のようにしてみました。
下記の場合,文字長=7として動作させています。

質問では,空白によるパディングですが,仮に0詰めであれば,
簡略に,
<xsl:value-of select="format-number(text(), '0000000')" />
とすればよいかと。


=== XML ===
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="numbers.xsl"?>
<numbers>
<number>1</number>
<number>12</number>
<number>123</number>
<number>1234</number>
<number>12345</number>
</numbers>

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

<xsl:template match="number">
<xsl:value-of select="concat(substring(' ',1,7-string-length(text())),text())" />
</xsl:template>
</xsl:stylesheet>
お礼コメント
ありがとうございます。
参考になりました。
投稿日時 - 2009-12-30 02:45:45
  • 同意数0(0-0)
  • ありがとう数0
-PR-
-PR-
  • 回答数1
  • 気になる数0
  • ありがとう数1
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください
  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう

関連するQ&A

-PR-
-PR-

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する
-PR-
-PR-
-PR-

特集


士業をはじめとする専門家が回答するQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ