O'Reilly logo

Amazon Hacks by Paul Bausch

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Working With Responses

Whether you’re requesting information via URLs or SOAP requests, the data you can access is the same, and it’s sent in a very similar XML format.

XML Parsers and XPath

To work with XML responses, you need a piece of software, typically an add-on module, called an XML parser. Almost every programming environment has one; you just need to find out which one is available to you and the syntax for using it. The parser’s function is straightforward: to load an XML document and make its contents available to your program either as a data structure or a series of functions.

Once an XML document is loaded, you can get at the specific data it contains with a simple query language called XPath. While parser syntaxes vary across languages and platforms, XPath is rapidly gaining ground as a standard way to access the data. Here’s a quick example of how XPath queries work. If you request product information, you need different pieces of that information at different times. You can get to the specific information you need by specifying a path through the document. Here’s an abbreviated AWS response:

<?xml version="1.0" encoding="UTF-8" ?> 
<ProductInfo>
  <Details url="http://amazon.com/o/0140042598">
    <Asin>0140042598</Asin> 
    <ProductName>On the Road</ProductName> 
    <Catalog>Book</Catalog> 
    <Authors>
      <Author>Jack Kerouac</Author> 
    </Authors>
  </Details>
</ProductInfo>

As you can see, ProductInfo is the top-level tag, and all other tags are within that path. If you just wanted to ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required