Сбой синтаксического анализа XML-ответа от Amazon PA API - PullRequest
0 голосов
/ 14 марта 2019

У меня есть XML-ответ от Amazon PA API, который я пытаюсь проанализировать в Java. Я использовал ту же логику, что и REST xml answer - Jaxb - API продукта Amazon Но вывод всегда

amazonxml.AmazonFeedParser@53d8d10a

Я не знаю, в чем проблема или ошибка.

У меня есть два класса: AmazonFeedParser.java и AmazonItemBuilder

package amazonxml;


@XmlRootElement(name="ItemSearchResponse")

public class AmazonFeedParser
{
    private String name;
    private String asin;
    private String price;

    public AmazonFeedParser()
    {

    }

    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlElement(name="Title")
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlElement(name="ASIN")
    public String getAsin()
    {
        return asin;
    }
    public void setAsin(String asin)
    {
        this.asin = asin;
    }

    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    @XmlElement(name="FormattedPrice")
    public String getPrice()
    {
        return price;
    }
    public void setPrice(String price)
    {
        this.price = price;
    }
}

Это второй класс, которым я пользуюсь

пакет amazonxml;

public class AmazonItemBuilder
{
    public AmazonItemBuilder()
    {

    }

    public List<AmazonFeedParser> build(File file)
    {
        try
        {
            JAXBContext context = JAXBContext.newInstance(AmazonFeedParser.class);
            Unmarshaller unMarshaller = context.createUnmarshaller();
            AmazonFeedParser newItem = (AmazonFeedParser) unMarshaller.unmarshal(file);
            System.out.println(newItem.toString());
        }
        catch (JAXBException e)


        {
            e.printStackTrace();
        }
        return null;
    }



public static void main(String[] args) {
    AmazonItemBuilder amazonitembuilder = new AmazonItemBuilder();
    amazonitembuilder.build(new File("C:\\Users\\Desktop\\amazontest.xml"));
}
}

Как видите, я пытаюсь получить доступ к XML-файлу и проанализировать его. XML хорошо отформатирован и содержит элементы ASIN, FormattedPrice и Title.

    <?xml version="1.0" ?>
    <ItemSearchResponse
        xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
        <OperationRequest>
            <HTTPHeaders>
                <Header Name="UserAgent" Value="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"></Header>
            </HTTPHeaders>
            <RequestId>41702764-c2dc-4f6c-af21-9664debf770b</RequestId>
            <Arguments>
                <Argument Name="AWSAccessKeyId" Value="MY ACCESS KEY"></Argument>
                <Argument Name="AssociateTag" Value="MY TAG"></Argument>
                <Argument Name="Keywords" Value="harry potter"></Argument>
                <Argument Name="Operation" Value="ItemSearch"></Argument>
                <Argument Name="ResponseGroup" Value="Images,ItemAttributes,Offers"></Argument>
                <Argument Name="SearchIndex" Value="All"></Argument>
                <Argument Name="Service" Value="AWSECommerceService"></Argument>
                <Argument Name="Timestamp" Value="2019-03-14T10:19:38.000Z"></Argument>
                <Argument Name="Signature" Value="G6JVokDVLOfOA8XDXbevKGHortF6yFzXlYcZK6lOobI="></Argument>
            </Arguments>
            <RequestProcessingTime>0.2966422940000000</RequestProcessingTime>
        </OperationRequest>
        <Items>
            <Request>
                <IsValid>True</IsValid>
                <ItemSearchRequest>
                    <Keywords>harry potter</Keywords>
                    <ResponseGroup>Images</ResponseGroup>
                    <ResponseGroup>ItemAttributes</ResponseGroup>
                    <ResponseGroup>Offers</ResponseGroup>
                    <SearchIndex>All</SearchIndex>
                </ItemSearchRequest>
            </Request>
            <TotalPages>1</TotalPages>
            <Item>
                <ASIN>B06Y18ZLYP</ASIN>
                <ParentASIN>B07DG9V738</ParentASIN>
                <FormattedPrice>20,00 EUR</FormattedPrice>
<Title> Test </Title>
                            </Item>
                </Items>
    </ItemSearchResponse>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...