Парсинг XML файла 500 мб.

e-orel

Новичок
Парсинг XML файла 500 мб.

Здравствуйте...
Подскажите может кто сталкивался в практике как распарсить большой XML файл.

............................
<offer id="1103156" available="false">
<url>****</url>
<price>97</price>
<currencyId>RUR</currencyId>
<categoryId>12239</categoryId>
<picture>****</picture>
<delivery>true</delivery>
<orderingTime>
<ordering>В течение недели</ordering>
</orderingTime>
<name>Паровозик. Мозаика (18х24)</name>
<vendor>Рубеж</vendor>
<vendorCode>064551Т</vendorCode>
<description>1111</description>
</offer>
......................................

$xml = simplexml_load_file('****.xml');
$p_cnt = count($xml->shop->offers->offer);
for($i = 0; $i < $p_cnt; $i++)
{
$id = $xml->shop->offers->offer[$i][id];
}


Для файла небольшого размера это приемлемо. Но как только возникает потребность в парсинге файла от 500 мб. То....

вообщем подскажите как лучше сделать? может его как то кусками парсить. Что б для памяти не критично было!


Спасибо!
 

e-orel

Новичок
???? expat ????

-~{}~ 13.02.09 12:33:

phprus Ткни конкретно носом куда там смотреть! а...

Спасибо!
 

phprus

Moderator
Команда форума
e-orel
Ткни конкретно носом куда там смотреть! а...
Читай все. По этой ссылке описаны функции, которые позволят создать XML-парсер основанный на callback-функциях, те для обработки элементов вызываются пользовательские функции и нет необходимости читать весь XML-файл в память.
Пример парсера есть тут http://ru.php.net/manual/ru/function.xml-parse.php.
 
Сверху