IE5.0の新機能を使ってXML,XSLを読み込む IEからXML,XSLを読み込む最近EDI関係で,XML(eXtensible Markup Language)という言葉をよく聞きます. HTMLのすごい奴というふれこみですが,どんなものか少々使ってみましょう. なお,このページに記載されているXMLの表示確認は, Internet Explorer 5.0でのみ行っております.
簡単なXMLファイルの作成まず,以下のようなXMLファイルをでっちあげます. これはExcelに入っているアルバムデータの一部を, VBAで作ったちょびプログラム でXML風にファイル出力したものです.
<?xml version="1.0"?> <albums> <album> <band>AION</band> <title>Aionism</title> <comment></comment> </album> <album> <band>ALCATRAZZ</band> <title>Alcatrazz</title> <comment>Yngwieのギターが速いぞ</comment> </album> <album> <band>AMORPHIS</band> <title>Elegy</title> <comment></comment> </album> </albums> このファイルを albums.xmlという名前で保存し, Internet Explorer 5.0(以下IE5)で開いてみます. すると,こんな表示がでます.
![]() データの構造として,albumsの下にalbumがあり, さらにその下に,band, title, commentの3つが存在していることがわかります. また,日本語が文字化けしていることもわかります. Arial系の欧文フォントが使われているのが原因かと推測できます. あと,albums, albumの左についている-をクリックすれば, それより下の項目が閉じたり開いたりします.
簡単なXSLファイルの作成さきほどの表示には,IE5がデフォルトで持っているXSLが使用されていますので, これを自家製のものにしてみましょう. XSL(eXtensible Style Language)は,XMLの表示書式を設定するものです. XMLには論理的構造を持った文書,データを記述して, XSLで表示処理書式を記述するという風に分離するのが,XMLの考え方です. 例えば以下のようなXSLファイルを作成し,これをalbums.xslという名前で保存します. <?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="www.w3.org/TR/WD-xsl" > <xsl:template match="/" > <TABLE BORDER="1"> <TR> <TD>BAND</TD> <TD>タイトル</TD> <TD>コメント</TD> </TR> <xsl:for-each select="albums/album" > <TR> <TD><xsl:value-of select="band" /></TD> <TD><xsl:value-of select="title" /></TD> <TD><xsl:value-of select="comment" /></TD> </TR> </xsl:for-each> </TABLE> </xsl:template> </xsl:stylesheet> そして,albums.xmlの先頭2行を,以下のように変更します. <?xml version="1.0"?> <?xml:stylesheet type="text/xsl" href="albums.xsl"?> これで,albums.xslを参照してレイアウトするようになります.
![]() 表で出せるようになりましたが,文字化けは相変わらずです.
XML DSOによるXMLデータバインド今度は,IE5が持っている別の機能を使ってみます. このDSO(Data Source Object)を使うと,HTMLファイルに外部データを取り込むことができます. ここではXMLのデータを取り込みますが,ADO(Active-X Data Object) からもデータをとれるようで, 強力といえば強力な機能なのですが,思いっきりブラウザ依存だなあ.
<HTML> <HEAD></HEAD> <BODY> <XML ID=xmlDoc src="albums.xml"></XML> <TABLE DATASRC="#xmlDoc" BORDER=1> <THEAD> <TH>BAND</TH> <TH>タイトル</TH> <TH>コメント</TH> </THEAD> <TR> <TD><SPAN DATAFLD="band"></SPAN></TD> <TD><SPAN DATAFLD="title"></SPAN></TD> <TD><SPAN DATAFLD="comment"></SPAN></TD> </TR> </TABLE> </BODY> </HTML> この内容をHTMLファイル(例えばalbums.html)として保存して, IE5で開くと,
![]() う〜む,日本語ページとして表示されているものの,データ部分は文字化けだ. 表示フォントの問題ではなかったのか? |