■ カンマ区切りのデータを生成
様々なアプリケーションで扱う事の出来るCSV形式のデータを出力する事で、
データの受け渡しなどに利用する事ができます。
データとデータの間をカンマ「,」で区切り、1件ごとのデータは
改行で区切ります。
では、例題を取り上げてみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample29.xml」、
XSLTスタイルシートを「test29.xsl」
として保存します。「sample29.xml」ファイルに記述する
xml-stylesheet処理命令のhref属性に
「test29.xsl」と指定して下さい。
■ sample29.xml
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test29.xsl" type="text/xsl"?>
<会員情報>
<会員>
<番号>1</番号>
<氏名 ヨミ="シンシュクマルタロウ">伸縮○太郎</氏名>
<住所>大阪府</住所>
<メール>marutarou@ykr414.com</メール>
</会員>
<会員>
<番号>2</番号>
<氏名 ヨミ="シンシュクマルノスケ">伸縮○之助</氏名>
<住所>鳥取県</住所>
<メール>marunosuke@ykr414.com</メール>
</会員>
</会員情報>
■ test29.xsl
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="Shift_JIS"/>
<xsl:template match="会員情報">
<xsl:apply-templates select="会員"/>
</xsl:template>
<xsl:template match="会員">
<xsl:value-of select="./番号"/><xsl:text>,</xsl:text> ←カンマ「,」を入れます。
<xsl:value-of select="./氏名"/><xsl:text>,</xsl:text>
<xsl:value-of select="./メール"/><xsl:text>,</xsl:text>
<xsl:value-of select="./住所"/> <xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
この例では、
テキストで出力する為に、
「xsl:output」要素に「method="text"」を設定します。
<xsl:text></xsl:text>
の間にカンマを記述して出力、
<xsl:text></xsl:text>
の要素内で改行することで、
一件のデータの区切りである改行を出力しています。
これらを記述してmsxsl.exeを使用します。
(上記の2つのファイルは同じフォルダに入れて下さい。)
コマンドプロンプトを開き、
「msxsl sample29.xml test29.xsl -o sample.csv」
と入力して実行してください。sample.csvファイルが出力されるはずです。
ファイルを開くと下記のような実行結果になります。
1,伸縮○太郎,marutarou@ykr414.com,大阪府
2,伸縮○之助,marunosuke@ykr414.com,鳥取県
|