2012-09-04 10 views
31

Sto cercando di ottenere i dettagli del prodotto Amazon dal suo ASIN. L'API del prodotto consente di eseguire un Itemlookup con ASIN, ma il valore restituito è XML.API di Amazon Product Advertising: come ottenere una risposta JSON per ItemLookup/Search

Voglio fare questa chiamata per Itemlookup dal lato client, quindi vorrei fare una chiamata JSONP, che non ho potuto trovare.

Ho trovato alcuni articoli sul web per convertire il codice XML in formato JSON utilizzando fogli di stile XSLT:

(a) https://bitbucket.org/basti/python-amazon-product-api/src/tip/examples/json-results.py

Ho provato ad utilizzare questo python-amazon-product-api e questo esempio, ma non poteva ottenere un JSON ritorno.

(b) http://www.kokogiak.com/gedankengang/2006/05/consuming-amazons-web-api-directly.html

La richiesta ho cercato di trasmettere è:

http://xml-us.amznxslt.com/onca/xml?AWSAccessKeyId=[ACCESS KEY]&AssociateTag=[ASSOCIATE TAG]&ContentType=text%2Fjavascript&IdType=ASIN&ItemId=B008IEGS9W&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes&Service=AWSECommerceService&Style=http%3A%2F%2Fforums.delphiforums.com%2Fdelphidocsz%2Famazon%2Fjson.xsl&Timestamp=2012-09-04T06%3A40%3A11Z&Signature=AGOqXvVSeMp3YyVkT4mGNXVx0cFGG%2Bh%2FdAebevbbF9o%3D 

Si prega di aiutare con ottenere un formato JSON con Amazon product API. Qualsiasi suggerimento è benvenuto.


L'OP può eseguire questo foglio di stile (documento di input non utilizzato) per determinare la sua versione XSLT.

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    exclude-result-prefixes="xsl msxsl"> 
<xsl:output method="html" indent="yes"/> 

<xsl:template match="/"> 
    <html> 
    <head><title>About your XSLT Processor</title></head> 
    <body> 
    <ul> 
     <li>xsl:version=<xsl:value-of select="system-property('xsl:version')" /></li> 
     <li>xsl:vendor=<xsl:value-of select="system-property('xsl:vendor')" /></li> 
     <li>xsl:vendor-url=<xsl:value-of select="system-property('xsl:vendor-url')" /></li> 
     <li>xsl:product-name=<xsl:value-of select="system-property('xsl:product-name')" /></li> 
     <li>xsl:product-version=<xsl:value-of select="system-property('xsl:product-version')" /></li> 
     <li>xsl:is-schema-aware=<xsl:value-of select="system-property('xsl:is-schema-aware')" /></li> 
     <li>xsl:supports-serialization=<xsl:value-of select="system-property('xsl:supports-serialization')" /></li> 
     <li>xsl:supports-backwards-compatibility=<xsl:value-of select="system-property('xsl:supports-backwards-compatibility')" /></li> 
     <li>msxsl:version=<xsl:value-of select="system-property('msxsl:version')" /></li> 
    </ul> 
    </body> 
</html> 
</xsl:template> 

</xsl:stylesheet> 
+0

Fornisci un esempio del valore restituito XML e il tuo particolare formato JSON richiesto. Dovrebbe quindi essere possibile scrivere un foglio di stile XSLT per trasformarlo in JSON. Quale versione di XSLT puoi usare? 1.0? o 2.0? –

+0

Si prega di trovare la risposta XML all'indirizzo https://gist.github.com/3626354. Vorrei estrarre il prodotto Titolo, collegamento alla pagina dei dettagli, l'immagine media del prodotto. Non sono sicuro della versione di XSLT. Come scoprirlo? – thomastinu

+0

Eseguire il foglio di stile che ho incluso e riportare i risultati. –

risposta

Problemi correlati