我正在尝试从URL获取xml响应并使用类解析它,这非常简单。但这些是我得到的错误:
Notice: Trying to get property of non-object in /Applications/MAMP/...
如果我尝试使用
,这是我得到的错误$xml = simplexml_load_file($url);
Warning: simplexml_load_file(): I/O warning : failed to load external entity
Warning: simplexml_load_file(url) failed to open stream: Cannot allocate memory in /Applications/MAMP/......
我尝试使用simplexml_load_string或simplexml_load_file的不同组合,有时它们可以工作,但大部分时间它们都在创建上面的错误。我也尝试过使用cURL,但仍然存在相同的错误,例如"试图在"中获取非对象的属性。但有时它能够获得xml响应并解析它。有谁知道如何解决这些错误。提前谢谢。
这是我的代码:
$ curl = curl_init();
curl_setopt_array($curl, Array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_ENCODING => 'UTF-8'
));
$getData = curl_exec($curl);
curl_close($curl);
print_r($getData);
// $xmlData = new SimpleXMLElement($getData);
$xml = simplexml_load_string($getData);
print_r($xml);
// // $xml = simplexml_load_file($getData);
$response = new ApiResponse($xml->{'status-code'}, $xml->{'status-code-description'}, $xml->{'data'});
答案 0 :(得分:0)
下面的代码将显示示例API XML响应(url)中的所有数据。使用simplexml_load_file()
将XML数据解释为对象。然后你可以使用它。
<?php
$html = "";
$url = "http://demo.cakemarketing.com/api/1/get.asmx/Advertisers?api_key=dNJFmId9rI";
$xml = simplexml_load_file($url);
for($i = 0; $i < count($xml);$i++){
echo $xml->Advertiser[$i]->advertiser_name."<br/>";
}
?>
此外,如果您收到Trying to get property of non-object
错误,可能是您的XML数据不可用。如果您理解它,代码将使您理解:-D