Amazon Webサービスを使ってみる。その2。
[ 2 ] XMLデータを弄る。
Amazon Product Advertising APIからのレスポンスはXML形式のデータで返ってきます。そいつをブラウザに綺麗に表示しなくては。
王道は「XMLにXSLスタイルシートを適用する」というやり方だと思うのです。XSLTは、パッと見たところ取っ付きにくそうですが、説明を読みながら試行錯誤しているうちに何となく判ってきますね。
→ XML+XSL参考書籍
Amazonさんは、リクエストパラメータにXSLスタイルシートの場所を含めてやれば、スタイルシート適用後のhtmlを返してくれるという、素晴らしく賢いサービスを提供しています。公式ドキュメントはこちら。
→ Transforming Product Advertising API Responses into HTML Using XSLT (英語)
PHPを使っているのなら、XMLデータを取得して、DOMやXML関数を利用して自前でXSLスタイルシートを適用するという方法もあります。IBMの解説ページが、取っ掛かりとしては判りやすくて良い。
→ PHP開発者のためのXML|IBM
XSLTを勉強するのが面倒だ、と思ったら、PHPでXMLをパースして色々操作してみます。simplexml_load_string関数を使って、XMLをPHPオブジェクトへパース。
$url = 'http://〜' ; //Amazon Product Advertising APIへのリクエストURL
$resultXML = file_get_contents( $url ); //XMLレスポンスを取得して...
$resultObj = simplexml_load_string( $resultXML ) ; //XMLをパース。
?>
$resultObjをvar_dumpなりprint_rなりしてみれば、オブジェクトの構造が判ります。あとは -> やforeachを駆使してメンバにアクセスしたりしながらデータを弄ればOK。オライリーのPHP本をパラパラと読だら、「simplexml関数を使ってXMLをパース」という方法の他に「文字列マッチ関数を使ってXMLタグを検索して値をぶっこ抜く」という手法も紹介されていましたが、もう面倒だからsimplexml関数でいいや。
コメント