IEのmsxmlでxmlをcsvに変換
現在IEにくっついているmsxmlでxmlファイルをcsvに変換させるxslを作成しています。
msxmlでもmsxml3でも動くようなxslファイルを作成したいので
ワーキングドラフト仕様のxslの記述を使用しようと思い下記のようなXMLとxslを作成しました
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="CSV.XSL"?>
<root>
<data>
<record>
<aaaa>1234</aaaa>
<bbbb>5678</bbbb>
<cccc>9abc</cccc>
<dummy name="ENDRECORD"></dummy>
</record>
<record>
<aaaa>1122</aaaa>
<bbbb>3344</bbbb>
<cccc>5566</cccc>
<dummy name="ENDRECORD"></dummy>
</record>
</data>
</root>
xslのposition()が使えないので
xmlに
<dummy name="ENDRECORD"></dummy>
を追加して
xslで一件分のデータの終わりを認識させています
-csv.xsl-
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0">
<xsl:template match="/">
<xsl:apply-templates select="root/data/record"/>
</xsl:template>
<xsl:template match="root/data/record">
<xsl:for-each select="*">
<xsl:choose>
<xsl:when test="./@name[(.='ENDRECORD')]">
</xsl:when>
<xsl:otherwise><xsl:value-of select="."/>,</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
しかし、csvのカンマ編集が以下のようになってしまいます。
1234,5678,9abc, ←最後にカンマが残ってしまう
1122,3344,5566,
どなたかワーキングドラフト仕様でも勧告後の仕様でも動くような、csvに変換するxslを作成された方はいませんでしょうか。
お礼
たびたびのご返答ありがとうございます。 文字は半角で打っているので、全角と言うミスは、まず、ないと思います。 半角空白は参考書を元にしたので、必要なところだけ空白を入れています。 それとタブ文字とはどういうものでしょうか? IE7用のW3勧告(名前空間)が新しく出たということもありえますか? お分かりでしたらご返答お願いします。