次にサーバーがXML(Extensible Markup Language)の形式でデータを返してくるケースを見ていこう。現実にはこのタイプのWeb APIの方が多い。

 XMLとはWeb 2.0時代に欠かせないページ記述言語で……なんて講釈より実際にやってみる方が理解が進む。先の「郵便番号検索 CSV XML Web サービス API」には、XML形式でデータを返す機能もあるので、これを使ってみよう。

 URLの検索条件にあるcsvの部分をxmlに変えて「http://zip.turl.biz/xml.php?zip=1330057」などとすればいい。試しにIEでアクセスすると図16のようなテキストデータが返ってくる(見やすいよう桁そろえして加工した)。この内容はXMLで記述されている。

itemのtownは西小岩

 XMLは階層構造のデータを記述できるのが特徴だ。<address>と</address>で囲まれた部分が住所情報の集合体であることを表し、中にある<item>~</item>が1つの住所情報を表す。それぞれのitemにはzip(郵便番号)、pref(都道府県)、city(市区)、town(町村)の情報が格納されている。この例では住所情報が1つだけだが、複数あれば、<item>~</item>のブロックが複数列挙される。

 例えば<town>西小岩</town>は、「town」という属性の情報が「西小岩」であることを表す。データ本体だけでなく属性情報を含められるのもXMLの特徴だ。属性情報を表す<town>などの文字列をタグと呼ぶ。town、city、zipなどの名称は基本的にXML作成者が自由に決められる。

 ただ、同じ分野の情報でタグ名称などを統一する業界の動きもある。企業間取引で用いられるebXML(Electronic Business XML)、数式を扱うMathML(Mathematical Markup Language)、住所情報を取り扱うContactXMLなどだ。ContactXMLは年賀状ソフトなどが住所録の交換フォーマットとして採用しているので名前をご存じの方もいるだろう。なお図16のXMLはContactXMLの書式ではない。

プログラムを解析するコツ

 VB Editorで1行ずつプログラムを実行しながら変数の様子を見てみると、プログラムの意味を理解しやすい。「デバッグ」→「ブレークポイントの設定/解除」を選ぶと、プログラムを一時停止させるブレークポイントがカーソル位置に設定される(茶色の部分)。プログラムを実行すると、そこで停止してVB Editorが前面に来る。そうしたら[F8]キープログラムを解析するコツを押そう。押すたびに1行ずつプログラムが実行されていく(黄色が次に実行する部分)。

 このときに便利なのが「表示」→「イミディエイトウィンドウ」で現れるウインドウだ。半角の?に続けて変数名を入力して[Enter]キーを押すと、現在の値を確認できる。画面下はアクセスするURLと返ってきたXMLを見たところだ。