我正在使用Amazon API,当我提交请求时,响应类似<GetMatchingProductForIdResult Id="082686322363" IdType="UPC" status="ClientError">
我将如何继续循环,因为每个xml表有5个产品需要解析。这样的事情会起作用吗?
if ($items->GetMatchingProductForIdResult->Products->Product->AttributeSets->Relationship === FALSE) {
$salesRank = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->SalesRankings->SalesRank[0];
} else {
$ASIN = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->Relationship->VariationParent->Identifiers->MarketplaceASIN->ASIN;
}
也许只是检查ID的东西,如果它=&#39;成功&#39;继续,如果没有,那么跳过它?我将如何跳过UPC数据? 完全错误:
<GetMatchingProductForIdResult Id = "082686322362" IdType = "UPC" status = "ClientError">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue</Code>
<Message>Invalid UPC identifier 082686322362 for marketplace ATVPDKIKX0DER</Message>
</Error>
</GetMatchingProductForIdResult>
我正在努力工作的循环:
for($i = 0; $i < (count($groupedArrays) - 0); $i++){
$xmlFilePath = 'xml/' . $file_name . $i . '.xml';
$xml = simplexml_load_file($xmlFilePath);
foreach($xml->children() as $items) {
if ($items->GetMatchingProductForIdResult->Error) {
continue;
}
$upcTag = $items['Id'] . ',';
if($items->GetMatchingProductForIdResult->Products->Product->AttributeSets->Relationship === FALSE){
$salesRank = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->SalesRankings->SalesRank[0] . ',';
} else {
$ASIN = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->Relationship->VariationParent->Identifiers->MarketplaceASIN->ASIN . ',';
}
$price = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->children('ns2', true)->ItemAttributes->Binding->Amount . ',';
}
}
提前致谢!
答案 0 :(得分:2)
我会检查错误标记,以便处理您的错误:
for($i = 0; $i < (count($groupedArrays) - 0); $i++){
$xmlFilePath = 'xml/' . $file_name . $i . '.xml';
$xml = simplexml_load_file($xmlFilePath);
foreach($xml->children() as $items) {
if ($items->GetMatchingProductForIdResult->Error) {
continue;
}
$upcTag $items['Id'] . ',';
if($items->GetMatchingProductForIdResult->Products->Product->AttributeSets->Relationship === FALSE){
$salesRank = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->SalesRankings->SalesRank[0];
} else {
$ASIN = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->Relationship->VariationParent->Identifiers->MarketplaceASIN->ASIN;
}
$salesRank = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->
$price = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->children('ns2', true)->ItemAttributes->Binding->Amount . ',';
}
}
语法错误 - 如果PHP没有显示任何错误,您至少应该修复它,因为它令人困惑并且不清楚您要对代码执行的操作:
$upcTag $items['Id'] . ',';
这看起来不对:
$salesRank = $items->GetMatchingProductForIdResult->Products->Product->AttributeSets->
您不希望使用 - &gt;
结束您的代码行