・どんな風に何を作ればそれができるのか?
・XSLTを動かすためには、何が必要か?ローカルでも動く?
具体的なサンプルコードも教えてください。
xsltをローカルで簡単に動かすには、msxsl.exeがいいでしょう。
Download details: Command Line Transformation Utility (msxsl.exe) で入手できます(ページ中ほどdownloadボタンがあります)
(すいません、windows前提です)
コマンドラインで、
msxsl xmlファイル名 xslファイル名 -o 出力ファイル名
と、いった感じで使います。
----
で、xml=>csv変換ですが、基本的にはxml=>htmlとそんなに変わりません。
サンプルで覚えるXSLTプログラミングを参考に、
まずはxml=>htmlを試します。
下記を『test.xml』として保存します。
<?xml version="1.0" encoding="Shift_JIS" ?> <PAGE> <EMPLOYEES> <EMPLOYEE> <EMPNO>1</EMPNO> <ENAME>佐野力</ENAME> <JOB>President</JOB> <HIREDATE>1990-04-01</HIREDATE> <SAL>10000</SAL> <DEPTNO>10</DEPTNO> </EMPLOYEE> <EMPLOYEE> <EMPNO>50</EMPNO> <ENAME>高橋敦子</ENAME> <JOB>Director</JOB> <MGR>1</MGR> <HIREDATE>1991-04-01</HIREDATE> <SAL>6000</SAL> <DEPTNO>30</DEPTNO> </EMPLOYEE> <EMPLOYEE> <EMPNO>1401</EMPNO> <ENAME>小山尚彦</ENAME> <JOB>Analyst</JOB> <MGR>50</MGR> <HIREDATE>1999-09-01</HIREDATE> <SAL>3000</SAL> <DEPTNO>30</DEPTNO> </EMPLOYEE> </EMPLOYEES> </PAGE>
下記を『test1.xsl』として保存します。
<?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" encoding="Shift_JIS"/> <xsl:template match="/"> <HTML> <BODY> <xsl:apply-templates select="//EMPLOYEE"/> </BODY> </HTML> </xsl:template> <xsl:template match="EMPLOYEE"> <xsl:value-of select="ENAME"/><BR/> </xsl:template> </xsl:stylesheet>
コマンドラインで下記のように実行します。
msxsl test.xml test1.xsl -o test.html
『test.html』が作られたと思います
----
次にcsv用のスタイルシートを作ります。
下記を『test2.xsl』として保存します。(最初のスタイルシートと比べてみてください)
<?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="/">社員番号,氏名,役職,入社日,売上 <xsl:apply-templates select="//EMPLOYEE"/> </xsl:template> <xsl:template match="EMPLOYEE"> <xsl:value-of select="EMPNO"/>,<xsl:value-of select="ENAME"/>,<xsl:value-of select="JOB"/>,<xsl:value-of select="HIREDATE"/>,<xsl:value-of select="SAL"/><xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet>
で、コマンドライン
msxsl test.xml test2.xsl -o test.csv
コツは空白と改行を如何に操るか、ですね。
とても詳しい解説ありがとうございます。