前回で、
リクエストURLを作成して結果を受け取ることができるようになりました。
(→ リクエストURLの作成(PHP)と結果(XML)の確認)
今回は、取得した結果(XML)から値を取得してHTML形式で表示させます。

リクエスト結果(XML)の表示
XMLから値を取得するのも、PHPには関数が用意されているので、
それを使えば簡単に行うことができます。
「simplexml_load_string()
」という関数ですね。
では、早速コードを見ていきましょう。
コピー$amazon_xml = simplexml_load_string( file_get_contents( *********** ) );
foreach( $amazon_xml->Items->Item as $item ) {
echo "<ul>";
/* 商品名 */
if ( ! empty( $item->ItemAttributes->Title ) ) echo "<li>" . $item->ItemAttributes->Title . "</li>";
/* 商品のURL */
if ( ! empty( $item->DetailPageURL ) ) echo "<li><a href=\"" . $item->DetailPageURL . "\" target=\"_blank\">" . $item->DetailPageURL . "</a></li>";
echo "</ul>";
}
1行目の「file_get_contents」の引数にリクエストURLを入れる
1行目のアスタリスク(*)の部分にリクエストURLを入力してください。
前回(⇒リクエストURLの作成(PHP)と結果(XML)の確認)作成したリクエストURLを入れてみましょう。
前回のと組み合わせるのであれば、「$base_request」を引数として入れてあげてください。前回のソースの一番下にそのまま入れてあげると動くはずです。
実行してみると、以下のような表示になります。
表示形式は、XMLから取得した値をHTMLのタグに入れているだけなので、好きな形に変えることができます。
簡単にXMLの読み方の説明
たぶん初めて見た人には、1行目から6行目が分かりにくいかと思うので、ちょっとだけ説明します。
(イメージレベルですが。。。)
1行目でXMLの全体のオブジェクトを取得しているイメージ。
(ルート階層を持っているイメージ?)
2行目の「$amazon_xml->Items->Item」が何を指しているかと言うと、ルート(「ItemSearchResponse」)階層の子階層の「Items」。
「Items」階層の子階層の「Item」を指しています。
数えてもらうと分かりますが、パラメーターで指定しない限りは、「Item」はデフォルトで10個あります。
これらを全部読み込ますためにforeach
で回してあげてるんですね。
ループの中では各「Item」のさらに下の階層から値を取得している感じです。
例えば、4行目の「$item->ItemAttributes->Title」であれば、「Item」の子階層の「ItemAttributes」の子階層の「Title」の値を取得しています。
今回は商品名、商品URL、価格の3つの値だけを取得していますが、XMLに書かれている情報は、上で説明したのと同じようにすれば取得できるので、欲しいデータがあれば、ガンガン取得しちゃいましょう。
おわり
リクエスト結果(XML)の表示についてでした。
XMLのソースと見比べながらやれば、そんなに難しくないとは思います。
次回は、リクエストURLを送る際のパラメーターについて紹介していきます。
Amazonから取得した情報を内容を色々と設定することができます。
今のままだと画像とか取得できてないですからね・・・。
第1回:アソシエイトタグの取得
第2回:アクセスキーとシークレットキーの取得
第3回:リクエストURL作成の概要
第4回:リクエストURLの作成(PHP)と結果(XML)の確認
第5回:リクエスト結果(XML)の表示
第6回:パラメーターの種類とか
最終回:実際に作ってみよう