- Home ›
- Amazon Web サービス入門 ›
- ページ管理 ›
- HERE
ページの指定(ItemPage)
前のページで解説した通り、リクエストに対して10個以上の商品が一致する場合はページを指定することで11個目以降の商品情報を取得できます。ここではリクエストにページを指定する方法を確認します。
ItemPage=<ページ番号>
ItemPageパラメータにページ数を指定します。最初のページは「1」を指定し、指定できる値の範囲は検索条件に該当する商品数によります。
では明示的に1ページを指定してリクエストを送信してみます。
http://ecs.amazonaws.jp/onca/xml? Service=AWSECommerceService &AWSAccessKeyId=[AccessKey] &Version=2009-07-01 &Operation=ItemSearch &SearchIndex=Books &Author=伊坂幸太郎 &ResponseGroup=Small &ItemPage=1
※必要に応じてURLエンコードして下さい。
上記のようなリクエストを送信した結果、返されたデータの中の「ItemSearchRequest」要素だけを取り出してみます。
<ItemSearchRequest>
<Author>伊坂幸太郎</Author>
<Condition>New</Condition>
<DeliveryMethod>Ship</DeliveryMethod>
<ItemPage>1</ItemPage>
<MerchantId>Amazon</MerchantId>
<ResponseGroup>Small</ResponseGroup>
<ReviewSort>-SubmissionDate</ReviewSort>
<SearchIndex>Books</SearchIndex>
</ItemSearchRequest>
リクエストにItemPageパラメータを追加した場合、取得したデータの中の「ItemSearchRequest」要素の中に「ItemPage」要素が含まれるようになります。この要素の値を参照することで現在取得したデータのページ数が分かります。(ItemSearchRequest要素が結果のどの部分に含まれるのかは前のページを参照して下さい)。
サンプルページ
では実際に試してみます。使用したXSLTファイルは次の通りです。
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2009-07-01" version="1.0"> <xsl:output method="html" encoding="UTF-8"/> <xsl:template match="/"> <html lang="ja"> <head> <title>XSLサンプル</title> </head> <body> <xsl:apply-templates select="aws:ItemSearchResponse/aws:Items" /> </body> </html> </xsl:template> <xsl:template match="aws:ItemSearchResponse/aws:Items"> <p< Page. <xsl:value-of select="aws:Request/aws:ItemSearchRequest/aws:ItemPage" /< / <xsl:value-of select="aws:TotalPages" /< </p< <xsl:apply-templates select="aws:Item" /> </xsl:template> <xsl:template match="aws:Item"> <p> [タイトル]<xsl:value-of select="aws:ItemAttributes/aws:Title" /> </p> </xsl:template> </xsl:stylesheet>
次のようなリクエストを送信します。
http://ecs.amazonaws.jp/onca/xml? Service=AWSECommerceService &AWSAccessKeyId=[AccessKey] &Version=2009-07-01 &Operation=ItemSearch &SearchIndex=Books &Author=伊坂幸太郎 &ResponseGroup=Small &ItemPage=1
結果は次のようになります。
ItemPageパラメータの値を変えて試してみます。
ItemPage=2 :
ItemPage=3 :
( Written by Tatsuo Ikura )