algm / largexmlreader
读取并处理巨大的XML文件
v1.0.2
2022-03-04 17:43 UTC
Requires
- php: >=7.0|>=8.0
- ext-json: *
- ext-libxml: *
- ext-simplexml: *
- ext-xml: *
- ext-xmlreader: *
- prewk/xml-string-streamer: ^0.14.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-04 23:39:41 UTC
README
从任何来源读取并处理巨大的Xml文件。
描述
此包允许使用PHP 7+处理具有重复项的大XML文件。
用法
导入Reader类并使用两种静态构造函数之一。
<?php use Algm\LargeXmlReader\Xml\Reader; $xmlStream = fopen($xmlFilePath, 'r'); // open the stream to read all nodes recursively (defaults to two levels) $reader = Reader::openStream($xmlStream); // or set the reader to find all repeating <item /> tags $reader = Reader::openUniqueNodeStream($xmlStream, 'item');
通常,唯一的节点流比普通的节点流性能更好。
重要限制:唯一的节点读取器不支持具有相同标签的嵌套节点。
获取读取器实例后,使用process方法获取节点生成器。
您可以将此生成器用作迭代器。
<?php $iterator = $reader->process(); foreach ($iterator as $nodeData) { // do something with the node }
process方法接受一个limit参数,以读取最多$limit
个节点。