besogonskiy
@besogonskiy
работаю php laravel разработчиком.

Как импортировать данные из больших файлов xml? Памяти нехватает на них?

Раньше в основном работали с поставщиками, у которых мало товаров и свойств и достаточно было при помощи XMLReader вычитвало всё подряд из файла xml рекурсивно и создавал ассоциативный массив, а потом уже обращался к этому массиву, но сейчас попался такой файл, где где всё считать в массив не получается- памяти нехвтает даже на сервере. файлы больше 100 мегабайт.

Какую либу выбрать чтоб удобно было
- по названию родительского тэга вытаскивать все записи последовательно.

Например, по тэгу "<Товары>" вытащить все записи "Товар", но не сразу, а один за другим, потому что их там десятки
тысяч.

Хотелось бы уметь делать с этим xml что угодно. влоть до того чтобы визуально видеть все его узлы и привязывать к ним через визуальный редактор соотвествующие настройки чтоб потом знать октуда что вытаскивать.

Или может на других языках программирование такое есть?
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
XMLReader ровно и предназначен для работы с большими XML. Проблема не в нем, а в попытке загрузить все нужные ноды в память - и здесь вас другой язык не сильно спасет - без вопросов какой нибудь язык сможет загрузить в память больше элементов, чем PHP, но все равно рано или поздно уткнется в память при n-количестве элементов. По этому берете XMLReader открываете файл идете по дереву - встретили нужный элемент, обработали и пошли дальше.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы