- Home ›
- Amazon Web サービス入門 ›
- 共通パラメータ ›
- HERE
スタイル(Style)
スタイルはリクエストの結果取得できるデータのフォーマットを指定します。書式は次の通りです。
Style=<スタイル>
このパラメータはオプションパラメータです。
パラメータ名として「Style」を使います。デフォルトの値は「XML」です。ContentTypeプロパティに「text/xml」を指定した場合にXMLのデータをXML形式として受け取る場合はデフォルトのままで構いません。
ContentTypeプロパティに「text/html」を指定した場合は、「Style」パラメータにXSLTスタイルシートが置かれたURLを指定すると、Amazon側で提供しているXSLTサービスによってXMLデータを指定した形式でHTMLに変換した結果を返してくれます。
XSLTスタイルシートはXML形式のデータを別の形式に変形するための変換する規則を記述するために使われ、主にXMLからHTMLやテキストへの変換などに使用されます。
XSLTスタイルシートの設置場所を表すURLが「http://www.example.com/xxxx.xsl」だった場合の記述例としては次のようになります。
Style=http://www.example.com/xxxx.xsl
実際に使用する場合は次のようになります。
http://ecs.amazonaws.jp/onca/xml? Service=AWSECommerceService &AWSAccessKeyId=[AccessKey] &Operation=ItemSearch &Version=2009-07-01 &ContentType=text/html &Style=http://www.example.com/xxxx.xsl
※上記は実際には1行で記述します。
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"> <xsl:apply-templates select="aws:Item" /> </xsl:template> <xsl:template match="aws:Item"> <p>[タイトル]<xsl:value-of select="aws:ItemAttributes/aws:Title" /></p> <p>[著作者]<xsl:value-of select="aws:ItemAttributes/aws:Author" /></p> </xsl:template> </xsl:stylesheet>
このファイルを「para7-1.xsl」として事前に設置しておきます。そして次のようなリクエストを送ります。
http://xml-jp.amznxslt.com/onca/xml? Service=AWSECommerceService &AWSAccessKeyId=[AccessKey] &Operation=ItemSearch &Version=2009-07-01 &SearchIndex=Books &Keywords=1Q84 &ContentType=text/html &Style=http://www.example.jp/xsl/para7-1.xsl
※上記は実際には1行です。また「AWSAccessKeyId」パラメータと「Style」パラメータの値は実際の値とは異なります。
次のような結果を取得できます。
Styleパラメータで指定したXSLTスタイルシートを使ってデータが変換され、その結果を受け取って表示しています。
( Written by Tatsuo Ikura )