- ベストアンサー
XSLTで固定長データファイルをつくるには?
XSLTで固定長データファイルを作成する方法を教えてください。もとのXMLのデータは固定長に整形されておらず、XSLTでの変換時に、空白で不足分を埋めたいと考えています。 もちろん、XSLTでCSVファイルを作成する方法は知っているので、XSLTで空白によるパディングをする方法が知りたいです。 よろしくお願いします。
- みんなの回答 (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>
お礼
ありがとうございます。 参考になりました。