• ベストアンサー

XSLTで固定長データファイルをつくるには?

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

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

  • ベストアンサー
  • hidetnk
  • ベストアンサー率66% (2/3)
回答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>

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25130&forum=9
egaway
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A

専門家に質問してみよう