I've written a small function to read an XML file with simpleXML and used Pear Benchmark Iterate to time it. I've read that simpleXML and DOM puts the entire XML file into memory which can create a lot of overhead on files of a large size.
The function below is a relatively small size and I'm only pulling 10 values from the XML file.
Iterations of the function below (xml filesize: 200kb) takes 2.5 seconds to complete on average.
Can anyone suggest a solution with PHP XMLparser, a related class, or perhaps some other efficient way to parse xml into an array?
SimpleXML version
function getItems($file_id, $item_count=5)
{
switch ($file_id)
{
case '1':
$file = "http://xml_file.xml";
if ($xml = simplexml_load_file($file))
{
$i=0;
foreach ($xml->info as $info)
{
if ($i < $item_count)
{
$var[] = array(
"id" => (string)$info->id,
"name" => (string)$info->name);
}
$i++;
}
return $var;
}
}
}