badlamer/symfony-hybrid-xml-parser

一个简单的类,用于以内存高效的方式解析大型XML文件

0.0.2 2016-09-19 20:10 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:12:05 UTC


README

一个类,用于在没有将文件加载到内存中的情况下解析大型XML文件。工作原理很简单:使用XMLReader遍历文件,对于每个感兴趣的XML元素,调用预先设置的处理器,该处理器将元素内容作为Symfony DomCrawler传递。

它看起来是这样的

<?php
	use Symfony\Component\DomCrawler\Crawler;

	$parser = new HybridXMLParser;
	$parser
		// Вешаем обработчик на путь в XML
		->bind('/FictionBook/description/title-info/author', function(Crawler $author, $parser) {
			print_r($author);
		})
		// И ещё один
		->bind('/FictionBook/description/title-info/translator', function(Crawler $translator, $parser) {
			print_r($translator);
			// Так можно немедленно завершить парсинг
			$parser->stop();
		})
		// Запускаем
		->process('somebook.fb2')
		->process('anotherbook.fb2');

可以作为处理器的一切,is_callable()返回true。