« Amazon's Web Services and XSLT | Main | SAML »
July 21, 2008
XSLT for Amazon AWS book search to JSON
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" id="amazon2json"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2008-06-26"
>
<xsl:output method="text" indent="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="/aws:ItemSearchResponse">
{
<xsl:apply-templates/>
}
</xsl:template>
<xsl:template match="aws:Items">
<xsl:for-each select="aws:Item">
"<xsl:value-of select="aws:ASIN"/>" : {
"isbn" : "<xsl:value-of select="aws:ASIN"/>",
<xsl:if test="aws:ItemAttributes/aws:Author">"authors" : [
<xsl:for-each select="aws:ItemAttributes/aws:Author">
"<xsl:value-of select="."/>"
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
],</xsl:if>
<xsl:if test="aws:ItemAttributes/aws:Author">
"author" : "<xsl:for-each select="aws:ItemAttributes/aws:Author">
<xsl:value-of select="."/>
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>",</xsl:if>
"publisher" : "<xsl:value-of select="aws:ItemAttributes/aws:Manufacturer"/>",
"title" : "<xsl:value-of select="aws:ItemAttributes/aws:Title"/>",
"url" : "<xsl:value-of select="aws:DetailPageURL"/>",
"price" : "<xsl:value-of select="aws:ItemAttributes/aws:ListPrice/aws:FormattedPrice"/>",
"format" : "<xsl:value-of select="aws:ItemAttributes/aws:Binding"/><xsl:text> </xsl:text><xsl:value-of select="aws:ItemAttributes/aws:ProductGroup"/>",
"publication_date" : "<xsl:value-of select="aws:ItemAttributes/aws:PublicationDate"/>",
"edition" : "<xsl:value-of select="aws:ItemAttributes/aws:Edition"/>",
"thumbnail" : "<xsl:value-of select="aws:MediumImage/aws:URL"/>"
}
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="aws:OperationRequest">
</xsl:template>
<xsl:template match="aws:ItemLinks">
</xsl:template>
</xsl:stylesheet>
Tags: XSLT
Posted by pj at July 21, 2008 03:21 PM