alex.oleshkevich/fast-xml-parser

PHP快速SAX XML解析器

1.0 2017-12-19 22:57 UTC

This package is auto-updated.

Last update: 2024-08-24 17:25:44 UTC


README

PHP Fast XML Parser是一个用于使用PHP解析大型XML文件的PHP库。主要特性

  • 轻量级;
  • 灵活(结果可以通过回调处理器轻松管理);
  • 适用于内存关键型项目(平均约10MB内存,在解析500MB XML文件时)

Build Status

安装

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');