⑥PHPでAmazon MWS APIで取得したXMLの商品画像を抜き出してブラウザに表示してみる。

え~前回、PHPでAmazon MWS APIを使ってXMLから商品名を抜き出しブラウザに表示させることができました!

パチパチパチパチ

前回を読んでいない方は、こちらからどうぞ。
⑤PHPでAmazon MWS APIで取得したXMLの商品名を抜き出してブラウザに表示してみる。

 

前回は、たかが商品名とあなどっていましたが、それはド素人の浅はかな考えでした。

名前空間にハマり、もうこのままフェードアウトしようかと考えました(笑)

いやいや、もう少し腰を据えて取り込まねばと粘ったところ、なんとか解決に至りました。

 

しかし、今回のトライアルは商品画像をXMLから抜き出してブラウザに表示させるだけです。

これは楽勝のはずです!

なにせ、前回とほぼ同じコードで、名前空間も克服(?)しています(エッヘン)

 

そんな訳で、行ってみましょう!

具体的にやりたいこと

前回は、XMLから商品名抜き出しブラウザに表示しました。
うーん、なにか寂しいですよねー(笑)

ということで、上の表に商品画像を表示して、すこしでも華やかにしたいと思います。

 

実際のXMLコードで商品画像のURLが記述されているのは、41行目です。
商品のサムネイル画像URLを今回は取得します。
そして、そのサムネイル画像URLを参照する形でブラウザに表示させます。

今回はこれだけです(笑)

 

ちなみに、私は、PHPはド素人です(笑)

出来なかったらごめんなさいということで。

では、さっそくやってみましょう!

XMLの出力結果を取り込むコードを作成する。

ここから先は完全なる自己責任となりますのであしからず(笑)

前回使用したサンプルコードは、GetMatchingProductForIdSample.php でした。

これに、少し手を加えます。

今回の目玉ですが、XMLを取り込むコードを、125行目を追加しました。

追加したコードですが、今回は楽勝のはずでした・・・

が・・・

また、落とし穴にはまりました(笑)

一体なんなの!?嫌がらせ?

まあ、私の実力不足のせいですけどね(笑)

 

しかし、どうにか目的のことは達成できました!

コードを実行した結果(先にみせます!)

では、先に結果を見てもらいましょう~!

 

はい、こちらです!

 

じゃーん!


おお~!パチパチパチパチ!拍手をください~!!

 

なんとか、がんばりましたー!!

 

ASINの実際の商品はこちら

見事にあっています!(当然ですがw)

では、苦労して作成したコードを見ていただきましょう!

作成したコード

product_image_disp.php

こちらが、苦労してXMLから商品画像を抜き出すコードです。

自己責任となりますが、ご参考までに記載いたします。

まず10行目に商品画像の項目を追加しました。

 

38行目、商品画像のURLをXMLから抜き出すコードを追加しました。

48行目と49行目は、ここが苦労した箇所で、商品画像を表示する記述です。

画像が文字だらけになったり、画面が黒くなり真ん中に小さい四角いものしか表示されなかったりと泥沼にはまりました(笑)

 

Google先生に聞いてなんとか、上の記述にたどり着きました。

いやーほっとしましたね~。

画像が表示されたときは、久々に感動しました~(笑)

作成したコードをご参考用にどうぞ

そのようなコードですので、完全なる自己責任でご参照ください。

いかなる責任も負いかねます。

product_image_disp.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>GetMatchingProductForId 実行結果</title>
</head>
<body>
<h1>GetMatchingProductForId 実行結果</h1>
<table border="1">
<tr><th>Status</th><th>ASIN</th><th>商品画像</th><th>商品名</th></tr>
<?php
//--------------------------------------
// phpで結果を取得して表示する。ここから
//--------------------------------------
//----------------
//statusを取得
//----------------
$statusList = $dom->getElementsByTagName('GetMatchingProductForIdResult');

//----------------
//ASINを取得
//----------------
$asinList = $dom->getElementsByTagName('ASIN');

//----------------
//商品名を取得
//----------------
$titleList=$dom->getElementsByTagNameNS('*','Title');

//----------------
//商品画像を取得
//----------------
$imageList=$dom->getElementsByTagNameNS('*','URL');

//---------------------------
//取得した各リストを表示する
//---------------------------
for ($i=0; $i<$titleList->length; $i++){
	echo "<tr>";
	echo "<td>" . $statusList->item($i)->getAttribute('status') . "</td>";
	echo "<td>" . $asinList->item($i)->nodeValue . "</td>";
	$image_path = $imageList->item($i)->nodeValue;
	echo "<td>" . "<img src=$image_path />" . "</td>";
	echo "<td>" . $titleList->item($i)->nodeValue . "</td>";
	echo "</tr>";
}

//--------------------------------------
// phpで結果を取得して表示する。ここまで
//--------------------------------------
?>
</table>
</body>
</html>

まとめ

今回の掲題

「PHPでAmazon MWS APIで取得したXMLの商品画像を抜き出してブラウザに表示してみる。」

は、大成功です!

 

久々にやりごたえを感じています(笑)

まあ、毎回苦労しますが・・・

 

プチ成功体験が、次なるやる気を生み出しています(笑)

 

ということで、次なる課題は・・・

今回と同じGetMatchingProductForIdを使って他の項目も抜き出してみたいと思いますー!

 

また時間がかかりそうです(笑)

ではこれにておひらき。

ご清読ありがとうございました。

ワテ

プログラムをオンラインで学ぶならUdemy(ユーデミー)がおすすめです。好きな時間に視聴できるので私も受講しています。


セール期間なら千円台でお得だぞ

カメ吉

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください