我想从远程XML URL
获取内存较少的数据,我使用simplexml_load_string()
,但我不确定我的代码,并且xml feed
包含980 records
那么获取这些大数据并转换为array
的最佳方式是什么。
我的代码:
$xmlURL = 'http://www.ironitekstil.com/store/xmlfeed/productsxml.aspx?xslt=picksel.xsl';
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $xmlURL);
$contents = curl_exec($c);
curl_close($c);
if ($contents) {
$xmlString = $contents;
$xml = simplexml_load_string($xmlString);
echo '<pre>';
print_r($xml);
//echo count($xml); // 980 records
echo '</pre>';
}else {
return FALSE;
}
答案 0 :(得分:0)
SimpleXML将整个数据加载到内存中(它是一个DOM抽象层)。试试XMLReader。它可以打开URL,按标签读取XML标签。当前节点(及其后代可以扩展为DOM。这允许您迭代外部节点(列表)并加载内部部分(记录)。
您可以使用PHP Streamwrappers直接打开URL或使用CURL将其提取并存储到本地文件中。