simplexml_load_string()只是存储xml问题的字符串

时间:2014-06-24 14:55:45

标签: php xml curl

我不得不说,这个问题我整天都感到沮丧。我正在研究的网站利用基于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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我自己发现了这个问题。原来返回的XML字符串是使用HTML实体,我愚蠢地没有意识到。 html_entity_decode()运行XML字符串,然后运行良好。