XMLをパースする[simplexml_load_file][カーリルAPI]

2016年3月20日

PHP

カーリルの図書館APIが提供している図書館および蔵書データベースから、図書館のある市区町村データを取得してみます。

 

この図書館APIは、大きく分けて2つの情報を提供しています。まず一つ目は図書館の所在地情報で、図書館のある市区町村名や図書館名などを取得することができます。二つ目は蔵書データで、ある任意の図書館に対して書籍を検索したり、貸出中か貸出可能かなどの情報を得ることができます。APIはGETリクエストに対して、JSONとXMLの形式で提供されています。

 

カーリルの図書館API

 

 

スポンサーリンク

 

 

下記のデモ画面は、simplexml_load_file()関数を利用して東京都にある図書館の所在データ(XML形式を選択)をロードし、図書館のある市区町村名を取得しています。

 

デモ画面

 

library_tokyo_city.php(デモ画面)

 

4行目

formatはxmlを指定しています。appkeyの◯◯◯◯◯には、カーリルの図書館APIを利用するためのアプリケーションキーを設定して下さい。以下のページから取得することができます。またAPIの仕様については「図書館API仕様書」を参照して下さい。

 

カーリル APIダッシュボード

 

6行目
SimpleXMLモジュールであるsimplexml_load_file()関数は、XMLを解析したらSimpleXMLElementオブジェクトを返します。実際に9〜11行部分を表示させてみると以下のようなオブジェクトが表示されます。

 

一部抜粋(実際に全データを表示させた場合はこちら

 

[0]=>、[1]=>の単位が一つの図書館を表し、[city]キーの値がその図書館のある市区町村です。例えば[0]番目の図書館であるアジア・アフリカ図書館のcityの値を直接取得するには、以下のようなコードを記述します。

 

$xmlはlibrary_tokyo_city.phpの6行目の変数

 

library_tokyo_city.phpの15〜17行目のforeach文によって東京都にある全ての図書館データのcityの値を取得しています。一つの市区町村には複数の図書館が存在する場合もあるので、20行目のarray_unique()関数によって重複する市区町村名を取り除いています。

 

また[0]番目の図書館のデータを全て取り出すには以下のようなコードを記述します。

出力結果

 

 

今回はsimplexml_load_file()関数を利用して外部からXML文書をロードしていますが、XMLをファイルとしてロードするのではなく、たんに変数の文字列としてロードする場合は、simplexml_load_string()関数を利用します。

 

 

 

関連ページ

JSONデータを取得する[json_decode][カーリルAPI]

 

JSONPをjQueryで利用する[Ajax][カーリルAPI]

 

 

参照ページ


 

PHPマニュアル SimpleXML

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー