Парсинг XML формата CommerceML средствами PHP


Очередная задача – синхронизация цен на сайте по файлу-выгрузке из 1С 8.2.
В движке решил не копаться – найти цены в БД и напрямую их корректировать – ИМХО так будет проще, чем искать какие то сторонние спец.модули.
Вроде всё ясно – берём файл, парсим, апдейтим.
Как всегда не обошлось без НО.
Файл-выгрузка оказался в формате “CommerceML” в формате xml version=”1.0″ encoding=”UTF-16″ с кириллицей везде – даже в наименованиях секций.
В общем первые попытки парсинга с помощью simplexml и DomDocument не увенчались успехом, а вот XMLReader, как раз рассчитанный на обработку файлов больших объёмов (что нам и нужно – прайсы, как правило имеют особенность безгранично расти).

Пока не забыл – порекомендую отличнейшую статейку, найденную в процессе реализации задачи – XML для PHP-разработчиков: Часть 2. Расширенные методы парсинга XML – различные методы работы с XML, всё с примерами и описанием.

Далее: … так как порядок в файле всегда идёт АРТИКУЛ и далее ЦЕНА, то особенно заморачиваться с обработкой вложений я не стал … в итоге получился такой код:

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *