gpt4 book ai didi

php - 如何在 PHP 中解析大型 XML 文件?

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:30 28 4
gpt4 key购买 nike

我正在解析一个大约 12mb 大的 XML 文件。我需要解析整个文件并将我发现的必要内容存储在 MySQL 数据库中。

我正在将 XML 文件转换为数组。然后我解析数组并存储值。

当 XML 非常小时,这工作正常,但当我运行我的 12mb 文件时,它就停止正常工作。

我尝试了多个将 XML 转换为数组的函数,这些函数是我在网上找到的,但没有一个起作用。

这是我在网上找到的两个不同的 XML 到数组函数的常见错误:

Fatal error: [] operator not supported for strings

我正在使用 SimpleXML,有没有更好的方法来解决这个问题?除了 SimpleXML 之外,是否还有任何功能强大到足以处理大型 XML 文件的库?

我现在有这个:

$z = new XMLReader;
$z->open('feedfetch.xml');

$doc = new DOMDocument;
while ($z->read() && $z->name !== 'collection');
while ($z->name === 'collection')
{
$node = simplexml_import_dom($doc->importNode($z->expand(), true));
var_dump($node[0]);
exit;

$z->next('collection');
}

你看到我的 var dump 了吗?它回显了一堆 XML 对象,但我不知道如何到达带有数据的实际节点?

最佳答案

从使用 SimpleXML 切换到 XMLReader在处理大型 XML 文件时。这是一个 Pull 解析器,不会将整个文件加载到内存中进行处理。

关于php - 如何在 PHP 中解析大型 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199602/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com