alex.oleshkevich / fast-xml-parser
PHP快速SAX XML解析器
1.0
2017-12-19 22:57 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ^6.5
README
PHP Fast XML Parser是一个用于使用PHP解析大型XML文件的PHP库。主要特性
- 轻量级;
- 灵活(结果可以通过回调处理器轻松管理);
- 适用于内存关键型项目(平均约10MB内存,在解析500MB XML文件时)
安装
composer require alex.oleshkevich/fast-xml-parser
示例 & 教程
<?php declare(strict_types=1); require_once("vendor/autoload.php"); use FastXml\CallbackHandler\GenericHandler; use FastXml\Parser; // create callback handler $handler = new GenericHandler; // set "on item parsed" callback $handler->setOnItemParsedCallback(function ($item) use ($self) { // do smth with parsed item }); // set "on progress" callback $handler->setOnProgressCallback(function ($bytesProcessed, $bytesTotal) use ($self) { // eg. draw a progress bar }); // instantiate $parser = new Parser($handler); // define tags which you don't want to include in resulting array (optional) $parser->setIgnoreTags(['root']); // define end tag for every item // (this is used as marker to determine when XML // item was processed. // For example, if you want to extract "value" from this XML source //<root> // <value>VALUE</value> // <value>VALUE</value> // <value>VALUE</value> //</root> // you must call $parser->setEndTag('value') so library can // emit content of every <value /> tag in "onItemParsed" event. $parser->setEndTag('value'); // run $parser->parse('bigfile.xml');