[`\Shef\InSync\TraitList\Xml`] Парсинг XML

Разбор XML сделан через SbWereWolf/xml-navigator (статья на Хабре): XMLReader идёт по документу потоком, а каждый элемент с нужным тегом HierarchyComposer превращает в массив — n имя, v значение, a атрибуты, s вложенные элементы.

Разбор XML сделан через SbWereWolf/xml-navigator (статья на Хабре): XMLReader идёт по документу потоком, а каждый элемент с нужным тегом HierarchyComposer превращает в массив — n имя, v значение, a атрибуты, s вложенные элементы.

трейтчто делает
ToArrayвсе элементы сразу массивом
ToYieldэлементы по одному через yield — для средних и больших объёмов

Тем же путём разбирает файл \Shef\InSync\Sync\FromFile\AXmlProcess. Запускаемый пример — examples/xml.php.

Большие xml файлы парсить не проблема. Нужно интервал разбора отрегулировать под объём данных, чтобы агент успел отработать. В модуле shef.demosync на основе импорта ДК в смарт процесс можно протестировать импорт файла размером 10 МБ.

Внешние сущности XML не раскрываются: XMLReader открывается без LIBXML_NOENT.

Откуда берётся библиотека — из vendor проекта (Composer) или своя копия модуля, — решает .settings.php; версии и почему ветка 7.2 — в build-and-install.md.


← API | ↑ Содержание | Компоненты →

Источник: insync/docs/4_xml.md — правки туда, сайт пересобирается сам.
CtrlI