Пытаетесь получить свойство не-объектного SimpleXML?

В настоящее время я использую следующий код для получения информации из REST api.

$url = "http://api.remix.bestbuy.com/v1/products%28upc=".$upc."%29?apiKey=(API KEY)";

$xmlfiledata = file_get_contents("$url");

$xmldata = new SimpleXMLElement($xmlfiledata);

$saleprice = $xmldata->products->product->salePrice;
echo $saleprice;

Однако PHP возвращает эту ошибку.

Notice: Trying to get property of non-object in FILE LOCATION on line 132

строка 132:

$saleprice = $xmldata->products->product->salePrice;

Я убедился, что создаваемый URL-адрес правильный. Рассматриваемый xml-документ находится здесь (я упростил его для простоты).

<products currentPage="1" totalPages="1" from="1" to="1" total="1" queryTime="0.006" totalTime="0.014" canonicalUrl="/v1/products(upc="635753489873")?apiKey=xr2r8us3dcef7qdjnecbvh6g" partial="false">
<product>
<salePrice>529.99</salePrice>
</product>
</products>

Как исправить?


person 01jayss    schedule 07.09.2011    source источник
comment
Это Notice, а не Error, которое вы можете подавить с помощью error_reporting(E_ALL ^ E_NOTICE).   -  person yoda    schedule 08.09.2011


Ответы (1)


Глядя на примеры на PHP.net, я верю вам: d нужно сделать доступ следующим образом:

$saleprice = $xmldata->product[0]->salePrice;

$xmldata на самом деле ваш уровень "продуктов", поэтому я не думаю, что вам нужен ...->products->...

person afuzzyllama    schedule 07.09.2011
comment
Почему голосование против? Пожалуйста, предоставьте дополнительную информацию о том, как сделать этот ответ более приемлемым. - person afuzzyllama; 06.05.2015
comment
Вы также можете использовать xpath, чтобы избежать ошибок, когда ваш xml не всегда имеет одинаковую структуру. - person ram4nd; 13.11.2018