2016-01-16 49 views
1

我對PHP相當陌生,而且我已經編寫了與amazon API一起工作的代碼。當我從API請求信息時,我收到它,但無法對XML進行排序。以下是錯誤:無法保存最後一個xml文件php

Fatal error: Call to a member function children() on null in J:\XAMPP\htdocs\Phillip\src\MarketplaceWebServiceProducts\Samples\csv_prep.php on line 117 

這裏是代碼:

if(is_array($xmlFiles)){ 
    foreach($xmlFiles as $xmlFile){ 
    $xml = simplexml_load_file($xmlFile); 
     foreach($xml->GetMatchingProductForIdResult as $items) {   
      //Line 117 -> 
      if(isset($items->Products->Product->AttributeSets->children('ns2', true)->ItemAttributes->ListPrice->Amount) !== False) { 
       $amount = $items->Products->Product->AttributeSets->children('ns2', true)->ItemAttributes->ListPrice->Amount 
      }else{ 
       $amount = '0.00'; 
      } 
     } 
    } 
} 

在XML標籤,我試圖讓看起來是這樣的值:

<ns2:amount>9.99</ns2:amount> 

它與代碼中所說的位置相同。我只有大文件這個問題,我不知道發生了什麼。如果有人能夠幫助,我將不勝感激。提前致謝!

+0

如果您可以發佈XML的相關部分,這將非常有用。另外,是所有的錯誤輸出? – Parfait

+0

已張貼。至少路徑是。我發現了這個問題。該錯誤在$ items標籤內。它去'Id,類型,狀態'的狀態是不成功的。這是客戶端錯誤。我將如何檢查? – McStuffins

回答

0

我不確定,但根據錯誤消息,它看起來像$items->Products->Product->AttributeSets層次結構中的某處,您指定的東西不存在。

做測試,看是否$items$items->Products$items->Products->Product$items->Products->Product->AttributeSets和哪一個出現故障,打印出事實,並呼籲exit;

您可以在$items上做print_r以獲得幫助。

+0

你說得對,這是一個很高的問題。狀態是'client error'而不是'success'。在xml中的GetMatchingProductForId標籤中,標籤中有一個狀態。我將如何去獲取標籤狀態區域中的文字? – McStuffins

+0

@Robert很高興聽到。您應該將此答案標記爲已接受,然後將該問題作爲一個新問題提出,因爲它有些不同。 Thx – sa289

+0

我將如何去檢查高度arcky?看到我的其他帖子在這裏:[我的帖子](http://stackoverflow.com/questions/34828958/getting-item-inside-an-xml-tag-and-call-to-children-on-null-error) – McStuffins