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で開くと,

ブラウザ画面

う〜む,日本語ページとして表示されているものの,データ部分は文字化けだ. 表示フォントの問題ではなかったのか?


© 2024 KMIソフトウェア