PHP:SimpleXmlのsimplexml_load_file()の基本的な使い方

Published on:
Last updated:

This post is also available in: 日本語 (Japanese)

PHPのSimpleXmlについて、忘れないように個人的なメモを公開しています。
ぐるなびAPIを利用したでのSimpleXmlのもう少し詳しい使い方は過去記事「ぐるなびAPIのPHPでの使い方の例」にて書いていますので参考にしてみてください。

ぐるなびAPIは2015/6/30日に新バージョンのURLに変更されています。下記の記事の内容は新バージョンのぐるなびAPIに修正しています。

SimpleXmlの基本的な使い方

web_simplexml

例としてぐるなびAPIを使います。
登録なし・APIキーなしでぐるなびAPIにアクセスすると以下のようなエラー内容がxml形式で返ってきます。(正常にぐるなびAPIを使うためには登録してAPIキーを取得する必要があります。)
http://api.gnavi.co.jp/RestSearchAPI/20150630/

<gnavi api_version="20150630">
 <error>
  <code>601</code>
  <message>keyidを指定してください(1)</message>
 </error>
</gnavi>

上記のようなxmlに対してPHPのSimpleXmlを使うコードは以下のようになります。

//旧バージョン $Test_RequestURL = 'http://api.gnavi.co.jp/RestSearchAPI/20150630/';
$Test_RequestURL = 'http://api.gnavi.co.jp/RestSearchAPI/20150630/';
$Test_Request = $Test_RequestURL;
$Test_xml = simplexml_load_file($Test_Request);
echo $Test_xml->error->code;
//601 という文字列がechoされる

ぐるなびAPI情報の呼び出し例

APIキーやその他の指定条件を追加して表示したい場合には以下のようになります。
XMLの呼び出し部分だけを別のPHPファイルに保存しておいて、includeしたりするのが一般的な使い方です。

	/* 基本リクエストURLの生成 */
	//ぐるなびレストラン情報
	//旧バージョンのAPI $RequestURL = 'http://api.gnavi.co.jp/RestSearchAPI/20150630/?';
        $RequestURL = 'http://api.gnavi.co.jp/RestSearchAPI/20150630/?';
	$APIkey = 'keyid=xxxxx'; //xxxxxはぐるなびAPIキー

	/* 詳細条件指定(パラメータは任意に指定してください) */
    //現在地からの距離
    $range = '&range=3';

    //業態でソート
    $sort = '&sort=2';

    //基本リクエストURLと詳細条件を結合
    $Request = $RequestURL.$APIkey.$range.$sort;

    //SimpleXmlを使ってxml形式に変換
    $xml = simplexml_load_file($Request);

	/* リクエストの確認テストの例 */
	//echo $Request; //リクエストURLの表示確認
	//表示されたリクエストURLにアクセスしてみて
	//echo $xml->rest->name; //店名が表示されているかの確認
No tags for this post.

About
Kuniyoshi Takemoto is the founder of Amelt.net LLC, and editor of this blog(www.amelt.net).Learn more and follow me on LinkedIn.