データの変換を実装する
ここまでの準備が整ったら、あとはVB Scriptで変換のためのロジックを実装すれば、すべては完了です。
では、以下のような流れで変換ロジックを記述します。
- 元のXML文書を読み込んでおく
- stylesheet1.xslの情報に基づいて、書籍名順にソートし、データを保存
- 変換されたデータを用いて、2200円以下の書籍だけを列挙(stylesheet2.xslに基づく)し、データとして保存
早速、VB Scriptのコードを記述していくことにしましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
基本的なコードの流れは、いままでのとおりです。
- CreateObjectの命令によってDOMのインスタンスを生成しておきます
- 必要なXML文書やXSLTのコードをloadメソッドによってロードしておく
実際に変換の作業を行っていくには、2つのメソッドが用意されています。ここでは、ファイルとして保存することを前提にしていますので「transformNodeToObject」というメソッドを利用しています。これによって、変換された結果をDOMのドキュメントとしてメモリ上にロードしておくことが可能です。もし、単純に文字列として結果を表示するだけであれば、「transformNode」というメソッドを用いることで変換した結果を戻り値として受け取ることができます。
ここで、おのおののメソッドの利用方法を整理しておきます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このサンプルアプリケーションでは、単純にファイル名を固定化し、読み込んでおくことで変換処理を実現していますが、実際のソリューションなどを考えると、この方法はファイルの固定化が前提となってしまうので、ベターですがベストではありません。この例はスクリプトを利用しているサンプルですので、拡張することを考えると、実行時のパラメータとしてXSLファイルを渡すことで動的な変換を行うような方法がよいでしょう。また、通常のVisual BasicやScripting Component(*1)などを用いてCOMコンポーネントとして生成しておくのであれば、プロパティやメソッドの引数としてファイル名を取得するようにすれば、柔軟性を得ることができるでしょう。
ともあれ、XSLTを利用したドキュメントの変換は単にいろいろな形式に変換することができるというだけではなく、これまで説明してきたようにXMLの持つ柔軟性を最大限に発揮するための重要な機能であると位置付けることができます。
*1:Scripting Component
スクリプト自身をコンポーネントとして扱う方法。拡張子.wscとして必要なシンタックスを追加すると、コンポーネントと同じように扱うことができます。
今回は、XSLTによるデータ変換に焦点を絞って解説をしてまいりました。XML文書を使用して得られるメリットには、さまざまなものがあります。ぜひ最大限に得られるように、いろいろな工夫をアプリケーションの中に取り入れていっていただければ幸いです。
次回は、今回紹介したドキュメント変換を応用した形で、ユーザーインターフェイスの生成を考えていくことにしましょう。XML文書を単純に表示させると、ツリーしか表示されません。しかし、今回紹介したテクノロジを応用することで、ユーザーインターフェイスを生成し、見た目のよいページを構成することができます。もちろん、XMLの特性を残したままに。
では、どのように実装していったらいいのか。次回をお楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.