アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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.ph …
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/30 02:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!