我正在使用amazon API,我需要檢查XML的狀態。例如:獲取xml狀態
<GetMatchingProductForIdResult status="Success" IdType="UPC" Id="082686068055">
或
<GetMatchingProductForIdResult status="ClientError" IdType="UPC" Id="082686068055">
我將如何去寫來檢查,如果狀態不是「成功」代碼?該XML看起來是這樣的:
<GetMatchingProductForIdResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01">
<GetMatchingProductForIdResult status="Success" IdType="UPC" Id="082686068055">
<Products>
<Product>
<Identifiers>
...
</Identifiers>
<AttributeSets>
</AttributeSets>
</Product>
</Products>
</GetMatchingProductForIdResult>
錯誤:
<GetMatchingProductForIdResult Id="082686035408" IdType="UPC" status="ClientError">
<Error>
<Type>Sender</Type>
<Code>InvalidParameterValue</Code>
<Message>Invalid UPC identifier 082686035408 for marketplace ATVPDKIKX0DER</Message>
</Error>
</GetMatchingProductForIdResult>
PHP代碼檢索內容:
if(isset($items->Products->Product->AttributeSets->children($namespace['ns2'])->ItemAttributes->ListPrice->Amount)) {
$amount = $items->Products->Product->AttributeSets->children($namespace['ns2'])->ItemAttributes->ListPrice->Amount;
}else{
$amount = '0.00';
}
我能夠創建此代碼來獲取產品的ID :
//$xml is an open XML file.
$items=$xml->GetMatchingProductForIdResult;
if(isset($items['Id'])){
$id = $items['Id'];
}else{
$id = 'No Id Found';
}
第一標籤sta在整個XML文件中。標籤在文件結尾處關閉。我使用SimpleXML打開,並獲取文件中所需的所有其他數據,但當<AttributeSets>
中的標記無效時,我總是遇到錯誤。我需要找到一種方法來避免這個問題。提前致謝。
不,這不是因爲我期待來檢索'GetMatchingProductForIdResult'標籤,它是每個項目的主要標籤上的信息。 – McStuffins
你有一個無效的''的例子和你用來檢索該元素的代碼嗎? Amazon API似乎不太可能返回錯誤的XML。 –
是的。將更新錯誤。 – McStuffins