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


simplexml_load_string() just storing string of xml issue

我不得不说,我一整天都对这个问题感到沮丧。我正在工作的一个网站使用基于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]=>
2014年6月24日15:47:38 companysearch UK 6.0 www.creditsafe.com
1 1 1 25 PSR DESIGN LIMITED 08821170英国
哈兹勒梅尔70 CHORLEY新路
BOLTON LANCASHIRE BL1 4BY None Filed Active-New Incorporated(1

以下是它在谷歌开发者工具中的样子:

http://i59.tinypic.com/30k36af.png

有什么想法吗?

自己发现了问题。原来返回的XML字符串使用的是HTML实体,我愚蠢地没有意识到。在通过simplexml_load_string()运行XML字符串之前,先通过html_entity_decode()运行XML字符串,结果运行良好。