ページの指定(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パラメータの値を変えて試してみます。

ItemPage=2 :

ページの指定(ItemPage)

ItemPage=3 :

ページの指定(ItemPage)

( Written by Tatsuo Ikura )