簡単なXML読み込みおう、オラ、メソだっちゃ。訳で第5回、行ってみたいと思います。その前に、補足&予備知識。第3回でやったファイル読み込み。実際には余り多用しません。(使わないのかよ)何か、文章を取り込んだりとか、そんな時くらいでしょうか。そもそも、何でファイルの内容を取り込みたいかと言うと、下記の2つの理由がダントツで多いんじゃないかと思います。プログラムの設定情報を外部ファイルから読み込む定型化された表データ(CSV,xls,mdb等)を外部ファイルから取り込む実は、この2つの用途にはそれぞれ専用の読み込み方があります。今回は前者の「設定ファイルの読み込み」をやってみたいと思います。「設定ファイルって?」って思うかもしれません。Windowsには「標準的な設定ファイルの形式」があります。以前までは標準的な設定ファイルの形式は.iniファイル形式でした。設定情報を各アプリケーションごとに保持する為に使用されたファイル形式です。レジストリの使用を嫌う開発者は今でも.iniファイルを使用します。フォルダごとコピーすれば他の環境でもそのまま設定が引き継げると言う便利な一面もあります。この形式は既に過去のもので、WSHにも.iniファイルを読み込むAPIは提供されていません。最近はどんな形式を利用するのか。XMLを設定ファイルとして使用します。前置きが長くなりましたので早速行ってみましょう。今回のテーマは「XMLファイルの読み込み」です。XML専用のオブジェクトを使用すると、とてもお手軽です。XML用のヤツは、「MSXML2.Domdocument」と言います。どっちにしても、これはとりあえず覚えるしかないです。読み込みのサンプルを見てみましょう。読み込むXMLがこんな感じだったとします。「XMLって何?」と言うような方はいるかもしれませんので、一応説明。「コンピュータに分かり易く、且つ、人間にもそこそこ読めるデータ形式の1つ」です。平たく言えば単なるテキストデータです。見れば何となく分かると思いますが、要するにHTMLみたいなタグで名前を自由に付けて、その中に値を書く。それ以上の何者でもありませんので、XMLと聞いたからといって引く必要は全くありません。「コンピュータに分かり易い」とは「データに『名前』と『値』が割り当てられる」と言うことです。人間なら「学校の部活動」だろうと大体分かりますが、コンピュータはそんな事分かるわけありません。「キャシャリン」とかに至っては人間でも「人のあだ名」である事を認識するのは困難です。言うことが分かっちゃう、っつーことです。ことが分かっちゃうっつー寸法です。「2列目のデータを取れ」としか命令できず、コンピュータにとってはそれが何なのかさっぱりです。XMLだと「名前」が付いているので「あだ名のデータを取れ」と言うことが出来るわけです。変更になったりした時とかに圧倒的に分かり易く、更に便利です。(強引)で、メンバー一覧を出すにはこんな感じ。値のみを取得しています。最初のCreateObjectですが、XML文書そのものを表すDocumentオブジェクトを作成しています。これはもうルールでこーゆーものなので、こんなもんだと思ってればOKです。メソッドでXMLファイルを読み込んでいます。渡される事を前提としちゃってます。ドラッグ&ドロップすることによって簡単に実現できます。Loadの前にあるAsyncプロパティですが、これもまあ、Falseにするもんだと思っててくれればOKです。それが何なのかを考える必要はあまりありません。要するにXMLから値が取れればいいんですから。(グダグダ)で、いよいよ一覧を取得する部分です。.selectNodes("/school/club/members/member")このselectNodesメソッドでXML文書の中から特定の値を取り出しています。URLのように、上の要素から順番に「/」で区切って場所を指し示しています。この書き方をXPathと言います。そんなの余り気にしなくていいです。書き方だけ覚えてください。XPathについては後でもう少し詳しく説明します。指定されたNodesをSelectしている訳です。指定されたノードは1つとは限らないからです。それぞれの<club>で7人+2人で9つもあります。その<member>の9つのかたまりがxmlNodeListに設定されるわけです。次に1つずつ取り出して表示します。いう構文は「塊から何かを1つずつ取り出す」構文です。[取り出された値]を使って処理...Nextと、なります。Nextまでが繰り返されます。MsgBoxで内容を表示している、と言うことです。格納されていますので、MsgBoxは9回呼ばれる事になります。MsgBoxでは値(text)と名前(name)を表示しています。名前はノードの名称を意味しますのでここではmemberとなります。次に「いや、9個もいらない。決まっている場合はもう少し簡単な取り出し方法があります。これで、NodeListではなくNode1つだけが取得できます。基本的にはこれだけです。内のデータが取り出せます。等は標準的なXMLデータの操作方法にはないマイクロソフト独自の拡張メソッドです。