alex.oleshkevich/fast-xml-parser

Fast SAX XML parser for PHP

1.0 2017-12-19 22:57 UTC

This package is auto-updated.

Last update: 2024-03-24 16:36:12 UTC


README

PHP Fast XML Parser is a PHP library for parsing large XML files using PHP. Key features:

  • Lightweight;
  • Flexible (result can be easily managed via callback handlers);
  • Good for memory critical projects (~10Mb in average while parsing 500mb XML file)

Build Status

Installation

composer require alex.oleshkevich/fast-xml-parser

Example & Tutorial

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