第10回 XMLとHTML
・・・これってEtcで同じタイトルがあるジャン まぁいいや。 今回はXMLをHPにする時に、ちょっと問題が発生するので、その説明を。 その問題とはXMLだと、googleが見つけてくれないってこと。 このあたりはEtc側の「XMLとHTML」でも書いてるけど、googleはXMLファイルを見つけても 「ファイルタイプ:不明」と判断し、中まで見てくれないんですよ。 逆を言えば、googleに乗っけたくない場合は、XMLにしとけばOKってことです。 実際、ここも元々はXMLでやってたんですけどね。 ものの見事に、引っかからなくて。 悔しいのでフルアドレス入力して検索すると、一応検索に引っかかったけど 「ファイルタイプ:不明」 とか表示されて。 おいおい、XMLでHPって使えねーじゃん、ここまで作ったのにどうしよう・・・ で、思い立ったのがHTML化。 最初は泣く泣く手でHTMLに置き換えようかと思ったんですが。 調べてみると、XMLをHTMLにファイルとして出力してくれるものを発見。 それがXTというXSL(XSLT)プロセッサ。 ここでこのXSLプロセッサの説明を。 これはXMLをXSLを使って変換するツール(ちなみに変換させること自体はXSLT:XSLトランスフォームと 呼ばれる)で、この他にもいくつかあります。 その中に実は、IE(5.5以降)も入ります。 実はIEにもXSLプロセッサが内臓されてるんです。 だからIE5.5以降で直接XMLを開いても、ちゃんと表示されるわけです。 逆にそれ以前のものだと、XSLプロセッサが内臓されていないので表示されないってことです。 では。 このXTの使い方を説明します。(結構面倒です^^;) まずXTから download xt-20020426a-src.zip(~1140K for Windows) をダウンロードします。 そして、それを解凍しておきます。(ここではd:\xt\に解凍したとします。) 次に、Shift_JIS対応にする為のもの(パーサと呼ばれてます)をダウンロードします。 XTはShift_JISに対応していない為(Shift_JISは日本語の全角文字を表す文字コードの ことで、ASCIIコードで足りる国から見れば、特殊文字扱い。が最近はUNICODEが登場し 全角文字っていうか2バイト文字コードの共通化が行われていますっていうか、この辺 書いてると長くなるので割愛)、これが必要となります。 まず、ここの中から、 Xerces-J-bin.2.5.0.zip をダウンロードし、解凍します。(ここではd:\xerces-2_5_0\に解凍したとします。) ・・・と。 ちょっと忘れてました^^; このXercesはJAVAなんですよ。 なので、ここでもう一つ、JAVA2RunTimeのインストールも必要になります。 ここ(Java)からダウンロードしてください。 インストール方法もこの中に載ってますので、そちらを参考にしてください。 ・・・・・・・ふぅ。 やっとこれで環境が揃いました。 確認すると、ここまでで d:\xt\ XTを解凍したもの d:\xerces-2_5_0\ xercesを解凍したもの Java2Runtimeのインストール 以上を揃えました。 ここまできたら、後は使うだけです。 では使い方を。 まずバッチファイル(えーと手順ファイルって感じです。このファイルをダブルクリックすると この中に書かれた事を実行してくれます。中身は普通のテキストで拡張子が.batなだけです)を作ります。set XTHOME=d:\xt set CP=%XTHOME%\xt.jar;%XTHOME%\lib\xp.jar;%XTHOME%\lib\xml-apis.jar set XERCES=d:\xerces-2_5_0\xercesImpl.jar set SAXDRIVER=com.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser java -cp %CP%;%XERCES%;%SMPLES%;%XMLAPIS% -D%SAXDRIVER% com.jclark.xsl.sax.Driver %*
もしインストール先がここと違う場合は、XTHOMEの部分と、XERCESの部分をインストールしたフォルダに 変更してください。 ここでやってることの細かい説明は・・・なしです^^; 要は、XTとXERCESのパスを設定して、それを使ってjavaで作られたXTを実行して変換するよー ってことです。 で、このファイル名をxt.batとします。 後はこれを実行するだけ。 実行方法はコマンドプロンプトを開いて、d:\>xt XMLファイル名 XSLファイル名 HTMLファイル名
これでOK・・・ですが、このファイル名って言うのが曲者。 ここではフルパスを指定する必要があります。 これだとめんどくさいので、このバッチファイルをXMLのあるフォルダに入れておけば ファイル名だけで済みます。(ただしXSLも同じフォルダに入れておく必要あり) 更にそれも面倒だと言う方は、バッチファイルをset XTHOME=d:\xt set CP=%XTHOME%\xt.jar;%XTHOME%\lib\xp.jar;%XTHOME%\lib\xml-apis.jar set XERCES=d:\xerces-2_5_0\xercesImpl.jar set SAXDRIVER=com.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser java -cp %CP%;%XERCES%;%SMPLES%;%XMLAPIS% -D%SAXDRIVER% com.jclark.xsl.sax.Driver d :\xml\sample01.xml d:\xml\sample01.xsl d:\html\sample01.html
こうしとけば、バッチファイルを引数無しの実行で、HTMLが出力されます。 うーん、インストールがかなり面倒ですね・・・ でも最初だけなので、頑張ってみてください。(管理人も頑張りました^^;) もしここの通りやっても動かねーぞコンニャローってことがあれば、BBSにお願いします。 できる限り対応してみます・・・もし力及ばなくても許して^^; そうそれば、XMLをHTMLに簡単に変換できます。 後はこのHTMLをアップロードすればOKです。 XMLはアップする必要はありません。(CSSはアップしないといけません。HTMLが参照しますので。) さて。 だらだら今までXMLについて、書いてきましたが。 ここで終了です。 元々ここまで書いたら、やめるつもりだったんで・・・ね。 後は、調べたり試したりしながら、いろんなサイトを作ってみてください。 管理人は(一度作っちゃえば)HTMLよりXMLの方が全然楽なので、そこを重点に ここのサイトを作りましたが、他にもデザイン重視や、機能重視など、いろんなアプローチで 作ってみると楽しいと思います。(ここもいずれはそうなるかも。まぁ気まぐれで。) といったわけで。 ここまで見て頂いた方々、お疲れ様でした。