В чем суть, есть сайт, на нем over999 элементов в инфоблоке, при выгрузке XML'ка весит почти 2 ГБ, как обработать такого монстра. Понятное дело, что тупо закинуть все это дело SimpleXMLElement и радоваться жизни не получится. Я написал класс, чтобы упростить жизнь машине, суть в чем:
Файл считывается построчно, определяется местоположение блоков, например по тегу <Товар>, сохраняется этот блок в строку, а дальше кидается в SimpleXMLElement. тем самым можно по каждому товару пройтись. Но проблема вот ещё в чем, сами элементы очень жирные, и на тестовой машине обрабатываются невероятно долго, на обработку одного элемента уходит 1-3 секунд.
Есть ли какие-то хитрости по работе с такими большими файлами, или тут просто, тестируй, проверяй, а дальше бери нормальный сервер и радуйся мощностям.
Через xmlreader, он по ноде считывает, каждую ноду можешь кидать в SimpleXML и дальше радоваться жизни, пример: biostall.com/import-frickin-huge-xml-files-with-xm...
Если вместо SimpleXML будешь использовать регэкспы, получишь очень сильное ускорение.
DYLAN, ну обрабатывай через xmlreader вместо SimpleXML у него есть метод evaluate или что-то типа того, который позволяет найти ноду по имени/xpath в ноде на которой курсор.