alexanderk23 / hybrid-xml-parser
Simple class to parse huge XML files in a memory-efficient way
dev-master
2018-02-04 07:57 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2026-05-14 22:17:47 UTC
README
Класс для разбора больших XML-файлов без загрузки их в память. Схема работы проста: файл проходится XMLReader'ом, для каждого интересующего нас элемента XML вызывается предварительно заданный обработчик, которому в качестве аргумента передаётся содержимое этого элемента в виде SimpleXMLElement.
Выглядит это как-то так:
<?php $parser = new HybridXMLParser; $parser // Вешаем обработчик на путь в XML ->bind('/FictionBook/description/title-info/author', function(\SimpleXMLElement $author, $parser) { print_r($author); }) // И ещё один ->bind('/FictionBook/description/title-info/translator', function(\SimpleXMLElement $translator, $parser) { print_r($translator); // Так можно немедленно завершить парсинг $parser->stop(); }) // Запускаем ->process('somebook.fb2') ->process('anotherbook.fb2');
В качестве обработчика можно указывать всё, для чего is_callable() возвращает true.