Разбор xml дла записи в базу данных

Мутник

Новичок
Разбор xml дла записи в базу данных

Имеется ОГРОМНЕЙШИХ размеров xml документ. Не подскажете, какими способами можно его разобрать, кроме как регулярниками, чтобы потом получить инфу в нужном мне формате и сохранить ее в базу данных?

В принципе дело в том, что у меня есть около 20.000 описаний различных товаров в xml - формате и нужно это как то разобрать.

на сервере стоит php 4.3.10 (5й версии не предвидется).
 

[DAN]

Старожил PHPClub
Если документ большой, то не советую юзать DOM-функции. Может нехватить памяти, т.к. весь документ загрузится в виде DomDomument-объекта.
Лучше через SAX распарсить. Примеры есть в мануале, форуме, статьсях в клубе.
 

Мутник

Новичок
[DAN]
12Mb это в твоем понятии большой документ?

-~{}~ 11.03.05 00:21:

[DAN]
PHP:
xml_parse_into_struct($p,$result,$vals,$index);
а этой штукой - сильно некрасиво???
 

Alexandre

PHPПенсионер
12Mb это в твоем понятии большой документ
для DOM - большой

xml_parse_into_struct($p,$result,$vals,$index);
тоже много памяти съест, используй:
xml_set_element_handler()
start_element_handler ()
end_element_handler ()
 

Мутник

Новичок
ок, спасибо.

т.е. эти ф-ции помогут преобразовать в древовидную структуру?
 

Alexandre

PHPПенсионер
в принципе да, если тебе нужна древовидная структура из 12М ...

опыт с большими XML данными показывает, что надо преобразовывать в отдельные массивы,
или сразу в SQL (INSERT ) и их выполнять...
а потом уже делать анализ ...

в общем, тебе на месте - виднее.
 

Мутник

Новичок
да там из 12 мб мусора где то 60%, который уйдет при разборе.

Ладно, спасибо.
 
Сверху