Pocket

楽天APIを使って商品を検索する機能を作った。
データの取得はいろなサイトのサンプルを参考にすると意外に簡単に実現できる。
手間取ったのは検索数の取得だ。
simplexml_load_string関数で$xmlにデータを格納できたら、
$xml->Body->ItemSearch->Items->Item[0]->itemName
などのようにして商品名は確認できる。
検索数はcountというフィールド名にあることは出力パラメータからわかっているが、
$xml->Body->ItemSearch->Items->countとしても何もない。
リクエストURLを作成して、ブラウザで結果を表示させると名前空間が違うことがわかった。

$xml->Body->ItemSearch->count

として、結果をvar_dump関数で確認すると、

object(SimpleXMLElement)#7 (1) {
  [0]=>
  string(4) “6206”
}

と表示される。

print $xml->Body->ItemSearch->count;

では、6206だけが表示される。
念のため、

$count =  (string)($xml->Body->ItemSearch->count);

として検索数を取得できた。

// PHP5
$tmpData = file_get_contents(‘ここに楽天APIの形式のURLを記述’);
$tmpData = str_replace(‘header:Header’, ‘Header’, $tmpData);
$tmpData = str_replace(‘itemSearch:ItemSearch’, ‘ItemSearch’, $tmpData);
$xml = simplexml_load_string($tmpData);

// 検索数を取得
$count =  (string)($xml->Body->ItemSearch->count);