Koc / xml-iterator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XmlIterator

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());
        }
    }    
}

About

License:MIT License


Languages

Language:PHP 100.0%