ISBNでAmazon検索

ISBNを用いてAmazonから本のデーターを取得します。
このアプリの目標は、バーコードリーダーで書籍管理をします。
書店に行った時、これ買ったかなぁってよく忘れるので。その場で登録した情報が携帯でチェックとかできるといいなってことです。
実際のサンプル
http://moeten.info/flex/20080308_amazonBook/bin-release/main.html

php側でAmazonxmlを整形して出力します。
これには理由があって、Flex側で直接Amazonxmlを取得する場合はnamespaceの問題があり、大変面倒です。

<?php
ini_set('mbstring.internal_encoding', 'utf-8');
ini_set('mbstring.script_encoding', 'utf-8');
$_GET['isbn'] = $_GET['isbn'] ? $_GET['isbn'] : "9784088596662";
$isbn = str_replace( "-" , ""  , trim( $_GET['isbn'] ) );
$request = array(
                 "Service"        => "AWSECommerceService",
                 "AWSAccessKeyId" => "アマゾンの開発者用ID",
                 "Operation"      => "ItemLookup",
                 "IdType"         => "ISBN",
                 "ItemId"         => $isbn,
                 "SearchIndex"    => "Books",
                 "ResponseGroup"  => "Images,Small",
                 "Version"        => "2008-03-03",
                 );
foreach( $request as $key => $val ){
    $url .= "{$key}={$val}&";
}
$url = "http://webservices.amazon.co.jp/onca/xml?" . $url ;
$xml = simplexml_load_file( $url );
foreach( $xml->Items->Item as $item ){
    $data['ASIN']    = $item->ASIN;
    $data['DetailPageURL'] = $item->DetailPageURL;
    $data['Author']  = $item->ItemAttributes->Author;
    $data['Creator'] = $item->ItemAttributes->Creator;
    $data['Title']   = $item->ItemAttributes->Title;
    $data['LargeImage']   = $item->LargeImage->URL;
    $MAIN .= <<<EOD
<result>
<ASIN>{$data['ASIN']}</ASIN>
<ISBN>{$_GET['isbn']}</ISBN>
<DetailPageURL>{$data['DetailPageURL']}</DetailPageURL>
<Title>{$data['Title']}</Title>
<LargeImage>{$data['LargeImage']}</LargeImage>
<Author>{$data['Author']}</Author>
<Creator>{$data['Creator']}</Creator>
</result>
EOD;
}
header ("Content-Type: text/xml; charset=UTF-8");
echo $MAIN;
exit;
?>

Flex側のソースです。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void{
    amazonS.send({
        "isbn":txtIsbn.text
    });
}
private function onFinish():void{
    myLog.text += "finish\n";
}
]]>
</mx:Script>
<mx:HTTPService id="amazonS"
     url="http://moeten.info/flex/20080308_amazonBook/index2.php"
     useProxy="false" resultFormat="e4x" showBusyCursor="true" method="GET" result="onFinish()"  />
<mx:Panel x="10" y="10" width="251" height="456" layout="absolute" title="ISBNでAmazon検索">
    <mx:Button x="164" y="10" label="ボタン" click="init()"/>
    <mx:TextInput x="52" y="10" text="9784088596662" id="txtIsbn" width="104"/>
    <mx:Text x="10" y="12" text="ISBN"/>
    <mx:TextArea x="10" y="372" width="211" height="34" id="myLog"/>
    <mx:TileList x="10" y="38" width="210" height="305" dataProvider="{amazonS.lastResult}" columnCount="1" dragEnabled="true">
        <mx:itemRenderer>
        <mx:Component>
            <mx:VBox  horizontalAlign="left" horizontalScrollPolicy="off" verticalScrollPolicy="off">
                <mx:Image source="{data.LargeImage}" width="100" height="100" />
                <mx:Text text="{data.Title}"/>
                <mx:Text text="{data.ISBN}"/>
                <mx:Text text="{data.DetailPageURL}"/>
                <mx:Text text="{data.LargeImage}"/>
                <mx:Text text="{data.Author}"/>
                <mx:Text text="{data.Creator}"/>
            </mx:VBox>
        </mx:Component>
        </mx:itemRenderer>
    </mx:TileList>
    <mx:Text x="10" y="346" text="ログ"/>
</mx:Panel>
    <mx:DataGrid x="269" y="10" width="189" height="456" dropEnabled="true" dragMoveEnabled="true" dragEnabled="true">
        <mx:columns>
        <mx:DataGridColumn headerText="所有" width="70" >
            <mx:itemRenderer>
            <mx:Component>
                <mx:Image source="{data.LargeImage}" width="70" height="60" />
            </mx:Component>
            </mx:itemRenderer>
        </mx:DataGridColumn>
        </mx:columns>
    </mx:DataGrid>
    <mx:TileList x="466" y="399" height="67" dropEnabled="true" width="90">
        <mx:itemRenderer>
        <mx:Component>
            <mx:VBox  horizontalAlign="left" horizontalScrollPolicy="off" verticalScrollPolicy="off">
                <mx:Image source="{data.LargeImage}" width="50" height="50" />
            </mx:VBox>
        </mx:Component>
        </mx:itemRenderer>
    </mx:TileList>
    <mx:Text x="466" y="373" text="ゴミ箱"/>
</mx:Application>