algm / largexmlreader

读取并处理巨大的XML文件

v1.0.2 2022-03-04 17:43 UTC

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个节点。