*AWS(Amazon Web サービス)等 [#y3150931] RIGHT:更新日&lastmod(); AWSをはじめ価格comなどのデータがXMLファイルとして検索して利用できる **AWS [#f5abeba7] AWSを利用して、アマゾンのDBからデータを取得してWeb上に表示する ***登録 [#v5a130c3] https://aws-portal.amazon.com/gp/aws/developer/registration/index.htmlにアクセスしてAccess Key IDを取得する。 ***利用方法 [#nded48c8] ''サンプル'' http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=1BWVD8AATMN7CXC0WW02&Operation=ItemSearch&SearchIndex=Books&Title=Rails&Version=2007-10-29&ItemPage=2 このようにこのサイトにパラメータをつけてアクセスすると該当データがxml形式で取得できる この場合は本の中で、キーワードが「Rails」が含まれるものを取得 <?xml version="1.0" ?> - <ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-10-29"> - <OperationRequest> - <HTTPHeaders> <Header Name="UserAgent" Value="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2)" /> </HTTPHeaders> <RequestId>bede52de-1466-4dff-afe5-eeb7f14f6d64</RequestId> - <Arguments> <Argument Name="Service" Value="AWSECommerceService" /> <Argument Name="ItemPage" Value="2" /> <Argument Name="Title" Value="Rails" /> <Argument Name="Operation" Value="ItemSearch" /> <Argument Name="Version" Value="2007-10-29" /> <Argument Name="SearchIndex" Value="Books" /> <Argument Name="AWSAccessKeyId" Value="1BWVD8AATMN7CXC0WW02" /> </Arguments> <RequestProcessingTime>0.1640020000000000</RequestProcessingTime> </OperationRequest> - <Items> - <Request> <IsValid>True</IsValid> - <ItemSearchRequest> <Condition>New</Condition> <DeliveryMethod>Ship</DeliveryMethod> <ItemPage>2</ItemPage> <MerchantId>Amazon</MerchantId> <ResponseGroup>Small</ResponseGroup> <ReviewSort>-SubmissionDate</ReviewSort> <SearchIndex>Books</SearchIndex> <Title>Rails</Title> </ItemSearchRequest> </Request> <TotalResults>139</TotalResults> <TotalPages>14</TotalPages> - <Item> <ASIN>4839928266</ASIN> <DetailPageURL>http://www.amazon.co.jp/Ruby-Rails-%E9%80%86%E5%BC%95%E3%81 %8D%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3 %83%B3%E3%82%B9-2-0%E5%AF%BE%E5%BF%9C/dp/4839928266%3FSubscriptionId %3D1BWVD8AATMN7CXC0WW02%26tag%3Dws%26linkCode%3Dxm2%26camp%3D2025%26creative %3D165953%26creativeASIN%3D4839928266</DetailPageURL> - <ItemAttributes> <Author>大場 寧子</Author> <Author>大場 光一郎</Author> <Author>久保 優子</Author> <Creator Role="監修">株式会社 万葉</Creator> <Manufacturer>毎日コミュニケーションズ</Manufacturer> <ProductGroup>Book</ProductGroup> <Title>Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応</Title> </ItemAttributes> </Item> (略) ''パラメータ例''~ -Operation 商品情報の検索(例 ItemSearch) -SubscriptionId または AWSAccessKeyIdで同じ内容 -SearchIndex 検索する対象のインデックス (例 Books Electronics Music MusicTracks) -Title 含まれるキーワード(どのフィールドまでかはまだ不明) 以下は必要なようだ -Version=2007-10-29 &color(red){なぜか2005-10-05だとうまく動作しなかった}; -ContentType=text/html XSLファイルは -Style=(URL) で指定 ただし、日本語指定はUTF-8でURLエンコードする ***html形式で表示 [#z7c59b28] Styleで指定されるXSLファイルで表示書式を指定できる ''サンプル(style.xsl)'' <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2007-10-29" version="1.0"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="/"> <html lang="ja"> <head> <title>XSLサンプル</title> </head> <body> <h1> サンプル </h1> <xsl:apply-templates select="aws:ItemSearchResponse/aws:Items" /> </body> </html> </xsl:template> <xsl:template match="aws:ItemSearchResponse/aws:Items"> <table border="1"> <tr> <th>出版社 </th><th>タイトル</th> </tr> <xsl:apply-templates select="aws:Item" /> </table> <p>商品総数 : <xsl:value-of select="aws:TotalResults" /></p> <p>ページ総数 : <xsl:value-of select="aws:TotalPages" /></p> </xsl:template> <xsl:template match="aws:Item"> <tr> <td> <xsl:value-of select="aws:ItemAttributes/aws:Manufacturer" /></td> <td> <xsl:value-of select="aws:ItemAttributes/aws:Title" /></td> </tr> </xsl:template> </xsl:stylesheet> ''評価'' また、評価のため、取得したXMLファイルの2行目にスタイルのXSLファイルを指定すことで表示する。 <?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet href="style.xsl" type="text/xsl" ?> <==追加 ^^^^^^^^^^^^^^^ XSLファイルを指定 <ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-10-29"> ^^^^^^^^^^こかが2005-10-05だったり すると動作しなようだ ^^^^^^^^^^ ここが2005-10-05だったりすると動作しなようだ <OperationRequest> <HTTPHeaders> ''直接表示'' うまくいったら以下のようにパラメータのStyleでXSLファイルを指定し、ContentType=text/htmlを追加する http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=1BWVD8AATMN7CXC0WW02&Operation=ItemSearch&SearchIndex=Books&Title=Rails&Version=2007-10-29&ContentType=text/html&Style=http://wwwism.dyndns.org/hp/style.xsl&ItemPage=2 AWS E-Commerce Service から返される検索結果の商品は、10 件ずつに区切られてページングされています。ページ番号を何も指定しない場合、デフォルトでは1 ページ目のデータが返されます。検索結果の商品情報( Item 要素) について2 ページ目以降のデータを取り出したいときは、ItemPage パラメータを指定。 ***参考 [#w87b8322] -http://zapanet.info/blog/item/903 -http://www.stackasterisk.jp/tech/java/xml03_01.jsp -http://www.itmedia.co.jp/enterprise/articles/0501/17/news004.html -http://www.ajaxtower.jp/ecs/page/index1.html