-
Notifications
You must be signed in to change notification settings - Fork 53
Description
Good morning,
I am not sure whether this is a bug or a feature or if I am using Parser in a wrong way.
Take the following XML:
<?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
<GetFeedSubmissionListResult>
<HasNext>false</HasNext>
<FeedSubmissionInfo>
<FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus>
<FeedType>_POST_FBA_INBOUND_CARTON_CONTENTS_</FeedType>
<FeedSubmissionId>40737016817</FeedSubmissionId>
<StartedProcessingDate>2016-01-17T21:13:27+00:00</StartedProcessingDate>
<SubmittedDate>2016-01-17T21:12:53+00:00</SubmittedDate>
</FeedSubmissionInfo>
<FeedSubmissionInfo>
<FeedProcessingStatus>_DONE_</FeedProcessingStatus>
<FeedType>_POST_FBA_INBOUND_CARTON_CONTENTS_</FeedType>
<FeedSubmissionId>40736016817</FeedSubmissionId>
<StartedProcessingDate>2016-01-17T21:12:38+00:00</StartedProcessingDate>
<SubmittedDate>2016-01-17T21:12:06+00:00</SubmittedDate>
<CompletedProcessingDate>2016-01-17T21:13:13+00:00</CompletedProcessingDate>
</FeedSubmissionInfo>
<FeedSubmissionInfo>
<FeedProcessingStatus>_DONE_</FeedProcessingStatus>
<FeedType>_POST_FBA_INBOUND_CARTON_CONTENTS_</FeedType>
<FeedSubmissionId>40735016817</FeedSubmissionId>
<StartedProcessingDate>2016-01-17T21:07:07+00:00</StartedProcessingDate>
<SubmittedDate>2016-01-17T21:07:01+00:00</SubmittedDate>
<CompletedProcessingDate>2016-01-17T21:07:53+00:00</CompletedProcessingDate>
</FeedSubmissionInfo>
<FeedSubmissionInfo>
<FeedProcessingStatus>_DONE_</FeedProcessingStatus>
<FeedType>_POST_FBA_INBOUND_CARTON_CONTENTS_</FeedType>
<FeedSubmissionId>40734016817</FeedSubmissionId>
<StartedProcessingDate>2016-01-17T19:04:13+00:00</StartedProcessingDate>
<SubmittedDate>2016-01-17T19:03:55+00:00</SubmittedDate>
<CompletedProcessingDate>2016-01-17T19:04:54+00:00</CompletedProcessingDate>
</FeedSubmissionInfo>
</GetFeedSubmissionListResult>
<ResponseMetadata>
<RequestId>608dc493-ca8a-4b4d-99a5-7775269e2ac6</RequestId>
</ResponseMetadata>
</GetFeedSubmissionListResponse>If I parse this using
$responseItems = $requestStatus->parsedResponse['GetFeedSubmissionListResult']['FeedSubmissionInfo'];my $responseItems contain an array of four items from $responseItems[0] to $responseItems[3] where I can access all attributes like FeedSubmissionId for example like $responseItems[1]['FeedSubmissionId'] - perfect.
However, if the XML response only has ONE FeedSubmissionInfo item, like this:
<?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
<GetFeedSubmissionListResult>
<HasNext>false</HasNext>
<FeedSubmissionInfo>
<FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus>
<FeedType>_POST_FBA_INBOUND_CARTON_CONTENTS_</FeedType>
<FeedSubmissionId>40737016817</FeedSubmissionId>
<StartedProcessingDate>2016-01-17T21:13:27+00:00</StartedProcessingDate>
<SubmittedDate>2016-01-17T21:12:53+00:00</SubmittedDate>
</FeedSubmissionInfo>
</GetFeedSubmissionListResult>
<ResponseMetadata>
<RequestId>608dc493-ca8a-4b4d-99a5-7775269e2ac6</RequestId>
</ResponseMetadata>
</GetFeedSubmissionListResponse>Then $responseItems[0]['FeedSubmissionId'] throws an illegal offset error, since the parser (of course?) parsed the response not like $responseItems[0]['FeedSubmissionId'] but like this: $responseItems['FeedSubmissionId'].
Now I am wondering if this is a bug or works as designed?
And what would be the workaround? Convert the whole xml to a collection and then work with that?
Thanks
Andreas