Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Хороший xml-парсер на PHP


Автор: LostSoul2 9.10.2014, 01:14
Доброго времени.
Существует ли какой-нибудь мощный xml-парсер на php, который можно было бы загрузить к себе на сайт и использовать?

Автор: _zorn_ 9.10.2014, 02:55
http://ru2.php.net/manual/ru/ref.simplexml.php

Автор: Sanchezzz 14.1.2015, 17:12
simplexml обычно используют для не больших XML
Рекомендую для прохода больших XML использовать XMLReader для чтения списка нод simplexml

Код

$xml_reader = new XMLReader();
while ($reader->read())
{
      if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'offer')
            {
                try
                {
                     
                        $doc = new DOMDocument('1.0', 'UTF-8');
                        $simple_xml_node = simplexml_import_dom($doc->importNode($xml_reader->expand(), true));
                        // ... 
                        // Тут дальше работаем как обычно с simplexml 

                }
                catch (\Exception $e)
                {
                    continue;
                }

            }
}

Выше код работал на боевом сервере обрабатывая гигабайтные файлы YML каталога товаров.
Пожирая оперативной памяти 17-19мб.
Связано это с тем что XMLreader читает и освобождает память по мере прохода всего XML
SimpleXML сперва загружает вcё память  потом вы с ним работаете.

Добавлено через 7 минут и 18 секунд
ух я некропостер...  smile  smile  smile  прошу прощения 

Автор: nezabor 31.1.2018, 16:09
использую xml2array
http://www.lalit.org/lab/convert-xml-to-array-in-php-xml2array

по мне так проще некуда

у этого-же автора есть и обратный класс
array2xml

Добавлено через 1 минуту и 26 секунд
Sanchezzz, это кто еще некропостер))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)