MSXML ParserとVBScriptを利用したプログラミング入門も第2回目を迎えました。今回は、前回予告したとおり、XML文書へのアクセスを応用しながらDOMのインターフェイスを利用して目的のデータへたどり着く方法を紹介します。
まず、目的のドキュメントに対して何らかの操作を行うためには準備が必要となります。開発環境となるOSやソフトウェアの準備が整っていると仮定して、実際にプログラミング上の準備をおさらいしておくことにしましょう。
目的の情報へアクセスをするためには、あらかじめメモリ上にXML文書が読み込まれている必要があります。まずは、このXML文書の読み込みを行う方法を見ておきましょう。
XML文書がアプリケーションから与えられる場合、2つの方法が考えられます。1つはファイルとしてXML文書が与えられる方法、そして、もう1つが文字列データとしてXML文書が与えられる方法です。これら双方で、実際の準備、つまりメモリ上へのXML文書の展開方法が異なりますので、注意が必要です。
まず、ファイルとしてXML文書が与えられたとすると、以下のようなコードを書いてメモリ上へ展開することができます。
Dim objDOM, rtResult Set objDOM = WScript.CreateObject("MSXML2.DOMDocument") rtResult = objDOM.load("FileName.xml") MsgBox rtResult, vbInformation, "実行結果"
また、文字列データ(変数など)としてXML文書が与えられた場合は、以下のようなコードとなります。
Dim objDOM, rtResult, strXMLDoc2 '文字列データとして変数にXML文書を格納しています。 '実際には、関数のパラメータとして、これらのXML文書のデータを受け取る 'というケースが多いかと思われます strXMLDoc = "<?xml version='1.0' encoding='utf-8' ?><books><item>" strXMLDoc = strXMLDoc + "<title>XML入門-第1巻</title><price>2500</price>" strXMLDoc = strXMLDoc + "<isbn>1-1234-5678-X</isbn><authors>" strXMLDoc = strXMLDoc + "<author>西谷 亮</author></authors>" strXMLDoc = strXMLDoc + "<imgfile>1-1234-5678-X.gif</imgfile></item></books>" 'メモリ上へのXML文書の展開 Set objDOM = WScript.CreateObject("MSXML2.DOMDocument") rtResult = objDOM.loadXML(strXMLDoc) MsgBox rtResult, vbInformation, "実行結果"
おおむね実行されるコードは似ていますが、読み込みを行うためのメソッドが異なります。ファイル読み込みの場合はloadメソッドで、文字列としての読み込みはloadXMLメソッドを利用します。これらを誤ってXML文書をメモリ上に展開しようとすると、エラーが発生してしまうので、実際に開発する段階では注意が必要です。
さて、これで、どのような形で受け取ったXML文書もメモリ上に展開することができるようになりました。では、実際に読み込まれているXML文書上のデータへダッシュする方法を検証していくことにしましょう。
Copyright © ITmedia, Inc. All Rights Reserved.