halilim / xml-iterator
低内存占用且易于使用的XML阅读器,转换成simplexml/数组迭代器。
1.0.1
2017-08-10 22:40 UTC
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-09-21 19:25:06 UTC
README
低内存占用且易于使用的XML阅读器,转换成数组/对象迭代器(基本上是时间和空间的权衡)。主要用于从外部API导入顺序数据。
安装(Composer)
$ composer require "halilim/xml-iterator"
使用
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"; }
注意:当处理远程文件时,建议首先将其复制到临时本地位置。否则,如果导入时间过长,可能会出现“文档末尾有额外内容”之类的错误(至少这是我的经历)。
示例输入
<?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>
示例输出
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', ), ), )
测试
$ composer test
贡献
请参阅CONTRIBUTING和CODE_OF_CONDUCT以获取详细信息。
贡献者名单
我们感谢所有我们的贡献者。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。