http://petat.com/users/tatsuki/index.html
banned interdit verboden prohibido vietato proibido
いろいろあり
http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt15.html
サンプルで覚えるXSLTプログラミング
URLにあるような方法が考えられます。
ただ、XSLTプロセッサの標準の機能ではないため、すべてのXSLTプロセッサでは使用できません。
ただ、そもそもXSLTはXMLのスタイルシートなので、csv形式のファイルを扱うことはできないような気がします。
#XMLからcsvへの変換ならできますけどね。
http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt00.html
サンプルで覚えるXSLTプログラミング
http://onohiroki.cycling.jp/archives/xslt4csv.xsl
値がカンマで区切られて,複数行あるデータをXMLに変換する XSLT の例
XSLT でやるなら CSV のデータが XML の中に埋め込まれているっていう前提でしょうか?
そういう場合の簡単な例.「”」や「,」が値に含まれている場合には対処していないけど.
そうぢゃなければ,XSLT を使う前に CSV を XML に他の外部のプログラムなどで変換しておくことになるでしょう.
有り難う御座います。1つめの情報が非常に参考になります。
上記URLはMSXSLでスクリプト処理を行う例です。
実行環境や変換プロセス起動方法が具体的に記述されていないので、以下は推測です。
実行環境:Windows+MSXML
変換プロセス起動方法:MSXMLのtransform
そもそも、transformにCSVは渡せないので、ダミーのXMLファイルを指定してXSLT処理を行う。
XSLTのスクリプト内でCSVファイルを読み込み、パースしてXML文字列を作成する。
XML文字列をそのまま出力する。
----------------------------------------
<?xml version=”1.0” encoding=”Shift_JIS” ?>
<xsl:stylesheet
xmlns:xsl=”
http://www.w3.org/1999/XSL/Transform
XSLT Namespace
”
xmlns:msxsl=”urn:schemas-microsoft-com:xslt”
xmlns:user=”
”
version=”1.0”>
<xsl:output method=”xml” encoding=”Shift_JIS” />
<xsl:template match=”/”>
<csvdata>
<xsl:value-of select=”user:func(.)” disable-output-escaping=”yes”/>
</csvdata>
</xsl:template>
<msxsl:script language=”JScript” implements-prefix=”user”>
<![CDATA[
function func(dom){
var fso = new ActiveXObject(”Scripting.FileSystemObject”);
var ForReading = 1;
var f = fso.OpenTextFile(”s01.csv”, ForReading, false);
var data=””;
while (!f.AtEndOfStream) {
data += ”<row>”;
var line = f.ReadLine();
var csv = line.split(/,/);
for (var col=0; col<csv.length; col++) {
data += ”<col>” + csv[col] +”</col>”;
}
data += ”</row>¥n”;
}
f.Close();
return data;
}
]]>
</msxsl:script>
</xsl:stylesheet>
----------------------------------------
今まさにどうやってCSVを読み込むか?で困っていたところです。大変参考になりました。有り難う御座います。
上位からソフトをキックする必要があると思うのですが、XSLT変換を実行するプロセスが既に決まっておりプログラムを呼び出せません。逆にこのフリーソフトはXSLTの中から呼び出せるのでしょうか?