2011-09-07 16 views
5

現在、次のコードを使用してREST APIから情報を取得しています。非オブジェクトSimpleXMLのプロパティを取得しようとしていますか?

$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> 

修正方法?

+0

これは 'Error'ではなく' Notice'で、 'error_reporting(E_ALL^E_NOTICE)'で抑止できます。 – yoda

答えて

4

PHP.net上examplesを見て、私はあなたがこのようなアクセスを行う必要があるだろうと信じて:

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

$xmldataは実際にあなたの「製品」レベルであるので、私はあなたが必要とは思いません...->products->...

+0

なぜ賛成投票ですか?この回答をより受け入れやすくする方法に関する詳細情報を提供してください。 – afuzzyllama

関連する問題