DOM Ошибка обработки увесистого XML

x2com

Новичок
DOM Ошибка обработки увесистого XML

На одном серваке лежит увесистый (~90Mb) XML файлец. Читаю и пишу его на свой сервак fread/fwrite'ом по кускам - вроде успешно. Потом читаю его локально DOM'ом для валидации и анализа. Код примерно такий:
PHP:
$dom = new DomDocument('1.0');
$dom -> load(локальный файл);
if(@$dom -> schemaValidate(XSD файл){
... Код дальнейшей обработки ...
}
В результате вываливается 500 Internal Server Error ... ... вот такие тараканы. Пдскажите, плз, в чём может быть проблема.

PS - с маленькими XML всё работает...

PPS -
Сервак:
Linux, Apache 1.3.37, PHP 5.0.5
memory_limit =32M
(остальное по полний)
 

Alexandre

PHPПенсионер
для больших файлов используй XMLReader или SAX
DOM требует много памяти, а большой DOM - еще больше.
 

x2com

Новичок
2 Alexandre Т.е. DOM полностью грузит XML в память? А можно DOM'ом проанализировать XML по частям, не грузя полностью?
XMLReader не подходит, т.к. (судя по всему) не поддерживает SchemaXML валидацию, а DTD не так интересно и гибко.
А SAX SchemaXML валидацию поддерживает?
2 Wicked
Что в логах пхп то пишется?
Не смотрел, гляну.
 

inTox

вёбных дел мастер
DOM полностью грузит XML в память
Путем нехитрых логических измышлений можно прийти к выводу, что DOM создает объект для каждого узла дерева.

Да! и застрелите всех собак.
 

Wicked

Новичок
если Alexandre имеет в виду SAX парсер, основанный на expat, то он вообще не поддерживает валидацию.
 
Сверху