XMLってなぁに? 初級編 第6回
2005/08/14
この文書は執筆時点(2004/後半)での知識を基にしており、現状とあっていない可能性があります。
第6回
今回からXML+XSL -> Text変換を行うがIEでの表示を行うとHTMLとして解釈しようとしたりするので、適切ではない。
XML+XSL変換を行ってくれるミニツールを公開するので、使ってほしい。
http://www.vector.co.jp/soft/win95/net/se347507.html
それではもともとのデータをCSVに変換することを目標にやってみよう。
a.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="a.xsl"?>
<商品一覧>
<商品>
<品名>CDRメディア</品名>
<値段>2000</値段>
</商品>
<商品>
<品名>DVDメディア</品名>
<値段>5000</値段>
</商品>
<商品>
<品名>FDメディア</品名>
<値段>1000</値段>
</商品>
</商品一覧>
以前使った要素版のXMLを引っ張り出してこよう。
a.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template><xsl:template match="商品一覧">
<xsl:apply-templates />
</xsl:template><xsl:template match="商品">
<xsl:apply-templates />
</xsl:template><xsl:template match="品名">
"<xsl:apply-templates />",
</xsl:template>
<xsl:template match="値段">
"<xsl:apply-templates />"
</xsl:template></xsl:stylesheet>
XSLファイルからHTMLのタグにあたる部分を削除する。文字の部分にダブルクォーテーションをつけて、品名にはカンマをつけて試してみよう。
これでうまく行きそうな予感だ。
これで一度変換してみよう
結果.txt
<?xml version="1.0" encoding="utf-8"?>
"CDRメディア",
"2000"
"DVDメディア",
"5000"
"FDメディア",
"1000"
望みの形式にはなれていない。なぜだろうか。