brouzie/xml-iterator

Fast and memory efficient XML iterator based on XmlReader.

v0.2.1 2020-11-03 20:02 UTC

This package is auto-updated.

Last update: 2024-04-29 03:57:30 UTC


README

Fast and memory efficient XML iterator based on XmlReader.

Build Status

Installation

Run

$ composer require brouzie/xml-iterator

Usage

<?php

require_once 'vendor/autoload.php';

$iterator = \Brouzie\XmlIterator\XmlIterator::fromUri('path/to/file.xml', '/my/xpath');

try {
    $iterator->rewind();
} catch (\Brouzie\XmlIterator\Exception\FileParseError $error) {
    var_dump($error->getMessage(), $error->getContext()->getLine(), $error->getContext()->getColumn());
}

while ($iterator->hasNextItem()) {
    try {
        $item = $iterator->getNextItem();
        
        var_dump(
            $item->getXml(), // \SimpleXmlElement
            $item->getContext(),
            $item->getLine(),
            $item->getColumn()
        );
    } catch (\Brouzie\XmlIterator\Exception\LineParseError $error) {
        if ($error->getContext()) {
            var_dump($error->getMessage(), $error->getContext()->getLine(), $error->getContext()->getColumn());
        } else {
            var_dump($error->getMessage());
        }
    }    
}