我写了一个小函数,使用simpleXML读取XML文件,并使用Pear Benchmark Iterate对其进行计时。我知道simpleXML和DOM会将整个XML文件放入内存中,这可能会在大型文件上产生很多开销。
下面的函数相对较小,我只从XML文件中提取了10个值。
对于这个函数的迭代(xml文件大小:200kb),平均需要2.5秒才能完成。 有人可以建议一种使用PHP XMLparser、相关类或其他高效解析XML到数组的方法吗? SimpleXML版本
下面的函数相对较小,我只从XML文件中提取了10个值。
对于这个函数的迭代(xml文件大小:200kb),平均需要2.5秒才能完成。 有人可以建议一种使用PHP XMLparser、相关类或其他高效解析XML到数组的方法吗? SimpleXML版本
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;
}
}
}