我不得不说,这个问题我整天都感到沮丧。我正在研究的网站利用基于REST的API来接收公司数据。使用cURL,我有XML请求和响应回复给我。
但是,一旦我尝试使用simplexml_load_string()
将XML更改为数组,它只是将XML作为字符串存储在数组的一个索引中。下面,您可以看到我的代码以及阵列在Google Chrome开发人员工具中的外观打印屏幕。
代码:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "requestXmlStr={$xml_data}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$searchResults = simplexml_load_string($output);
exit(print_r($searchResults));
exit(print_r($searchResults))
只在页面上显示以下内容:
SimpleXMLElement对象([0] =>
24/06/2014 15:47:38 companysearch UK 6.0 www.creditsafe.com
1 1 1 25 PSR DESIGN LIMITED 08821170英国
HAZLEMERE 70 CHORLEY NEW ROAD
BOLTON LANCASHIRE BL1 4BY无归档活动 - 新合并)1
以下是Google Developer工具的外观:
http://i59.tinypic.com/30k36af.png
有什么想法吗?
答案 0 :(得分:0)
我自己发现了这个问题。原来返回的XML字符串是使用HTML实体,我愚蠢地没有意识到。 html_entity_decode()运行XML字符串,然后运行良好。