我如何使用PHP从url获取xml数据?

时间:2017-04-02 13:07:55

标签: php arrays xml xml-parsing

我想从远程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;
}

1 个答案:

答案 0 :(得分:0)

SimpleXML将整个数据加载到内存中(它是一个DOM抽象层)。试试XMLReader。它可以打开URL,按标签读取XML标签。当前节点(及其后代可以扩展为DOM。这允许您迭代外部节点(列表)并加载内部部分(记录)。

您可以使用PHP Streamwrappers直接打开URL或使用CURL将其提取并存储到本地文件中。