@AlexandrMa

Как работать с XML когда он тяжелый?

Нужно сохранить данные из файла XML в БД. Но на этапе
$xml = new SimpleXMLElement(file_get_contents($file));

Сервер даёт ошибку 502. Нехватка ОЗУ.

Вопрос, можно ли уменьшить (другим скриптом на этом же сервере) текущий файл, оставив только нужные опции? К примеру регулярными выражениями. Или всё равно будет не хватать памяти? Например если я удалю тег description, то с файлом работать реально будет уже. Но мне бы хотелось, чтобы этот тег удалял сервер, в два этапа загрузка получалась бы.
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
toxa82
@toxa82
$xml = new \XmlReader();
$xml->open($filePath);
while ($xml->read()) {
    if ($xml->nodeType === \XmlReader::ELEMENT && $xml->name == 'SUBJECT') {
         $subject = simplexml_load_string($xml->readOuterXml());
         // your code
    }
}
$xml->close();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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