仕事、学んでいること、興味のあることなどの「アウトプット」を書き出すブログ。心を高め、魂を磨くために、今日も一生懸命働く。
今回で、アマゾンウェブサービスを利用したXMLの処理も、
第4段となりました。
今回は、PHPのSimpleXMLを使って、
簡単にXMLデータを処理します。
今回の完成品は、以下のリンクからお確かめください。
⇒SimpleXML版 書籍検索
今回も、もはやツールとも呼べない感じで、
「タイトル」と「著者」を画面に表示させるだけのものです。
説明書きによると、
XMLデータの文書構造をオブジェクトツリーに展開することで、
ランダムアクセスが可能!
というような感じです。
説明は難しそうですが、
使ってみるのは、すごく簡単でした。
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHPのSimpleXMLでアマゾンウェブサービス</title>
<meta name="description" content="アマゾンAPIから受け取るXMLデータを、PHPのSimpleXMLを使って、変換処理しています。" />
</head>
<body>
<form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
SimpleXML版 書籍検索:
<input type="text" name="keywd" size="30" maxlength="255" value="<?php print($_POST['keywd']); ?>" />
<input type="submit" value="検索" />
</form>
<?php
// 検索ボックスに入力されたかの判定
if($_POST['keywd'] != '') {
$url = "http://ecs.amazonaws.jp/onca/xml";
$Service = "?Service=AWSECommerceService";
$AWSAccessKeyId = "&AWSAccessKeyId=*****************";
$Version = "&Version=2008-04-07";
$AssociateTag = "&AssociateTag=working16h-22";
$ContentType = "&ContentType=" . urlencode("text/xml");
$Operation = "&Operation=ItemSearch";
$SearchIndex = "&SearchIndex=Books";
$ResponseGroup = "&ResponseGroup=Medium";
$Keywords = "&Keywords=" . urlencode(htmlspecialchars($_POST['keywd']));
$urlall = $url.$Service.$AWSAccessKeyId.$Version.$AssociateTag.$ContentType.$Operation.$SearchIndex.$ResponseGroup.$Keywords;
$xml=simplexml_load_file($urlall)
or die("XMLパースエラー");
// echo "<pre>";
// var_dump($xml);
// echo "</pre>";
$Items=$xml->Items;
for($i=0;$i<10;$i++){
print '<p>タイトル:<a href="' . $Items->Item[$i]->DetailPageURL . '" target="_blank">' . $Items->Item[$i]->ItemAttributes->Title . '</a><br />著者:' . $Items->Item[$i]->ItemAttributes->Author . '</p>';
}
}
?>
</body>
</html>
【今回参考にしたもの】
前回のSAXに比べたら、
SimpleXMLはものすごく簡単に終わりました。
PHP5で、XMLデータを簡単に取り扱うのならば、
SimpleXMLは良い選択肢ではないでしょうか?
個人的には、XSLTスタイルシートも気にいっています。
次回、第5弾も、
他のやり方でXMLデータと格闘したいと思います!
[ 起業日記のホームへ ]
仕事の成果や興味を持って体験したこと、また今学んでいることで自分なりにまとめられるようになったことなど、とにかくアウトプットを中心として書いていくブログです。
「1日16時間 起業日記」の意味は、WEBの世界で起業した管理人が、京セラの稲盛和夫さん、HONDAの本田宗一郎さんのように、年間5,000時間以上を数十年と働き続けた名経営者達に憧れて、せめて時間だけでも同じことをしよう!という意気込みを表現しています。
コメント