halilim / xml-iterator
XML Reader to simplexml/array iterator with low memory usage and an acceptable level of ease of use.
Installs: 308 051
Dependents: 1
Suggesters: 0
Security: 0
Stars: 19
Watchers: 4
Forks: 11
Open Issues: 1
Requires
- php: >=5.3
- ext-dom: *
- ext-simplexml: *
- ext-spl: *
- ext-xmlreader: *
Requires (Dev)
- phpunit/phpunit: ~4.0||~5.0
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-11-21 19:52:26 UTC
README
XML Reader to array/object iterator with low memory usage (basically a Space–time tradeoff) and an acceptable level of ease of use. Mostly useful for importing sequential data from external API's.
Installation (Composer)
$ composer require "halilim/xml-iterator"
Usage
use XmlIterator\XmlIterator; $it = new XmlIterator("http://api.example.com/products.xml", "product"); foreach ($it as $k => $v) { // Do something with each row ($v), save it to db, echo it, etc. E.g.: // echo $k . " => " . var_export($v, true) . "\n\n"; }
Note: When working with remote files it's advised to copy the file to a temporary local location first. Otherwise if the import takes a long time, "extra content at the end of the document" kind of errors may occur (or at least this was what happened to me).
Example input:
<?xml version="1.0" encoding="UTF-8"?> <products> <product> <title>Lorem</title> <brand>ACME</brand> <images> <image>http://www.example.com/image1.jpg</image> <image>http://www.example.com/image2.jpg</image> </images> </product> <product> <title>Ipsum</title> <brand>Etc LLC</brand> <images> <image>http://www.example.com/image3.jpg</image> <image>http://www.example.com/image4.jpg</image> </images> </product> </products>
Example output:
0 => array ( 'title' => 'Lorem', 'brand' => 'ACME', 'images' => array ( 'image' => array ( 0 => 'http://www.example.com/image1.jpg', 1 => 'http://www.example.com/image2.jpg', ), ), ) 1 => array ( 'title' => 'Ipsum', 'brand' => 'Etc LLC', 'images' => array ( 'image' => array ( 0 => 'http://www.example.com/image3.jpg', 1 => 'http://www.example.com/image4.jpg', ), ), )
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
List of Contributors
We thank all our contributors for their contributions.
License
The MIT License (MIT). Please see License File for more information.