本文介绍了是否正在尝试获取非对象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>
如何修复?
推荐答案
查看PHP.net上的examples,我认为您需要这样访问:
$saleprice = $xmldata->product[0]->salePrice;
$xmldata
实际上是您的产品级别,所以我认为您不需要...->products->...
这篇关于是否正在尝试获取非对象SimpleXML的属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!