gpt4 book ai didi

php - 在 php 中解析非常大的 XML 文件

转载 作者:可可西里 更新时间:2023-11-01 06:35:48 25 4
gpt4 key购买 nike

我需要解析 40GB 大小的 XML 文件,然后规范化并插入到 MySQL 数据库中。我不清楚需要在数据库中存储多少文件,我也不知道 XML 结构。

我应该使用哪个解析器,你会如何做?

最佳答案

在 PHP 中,您可以使用 XMLReaderDocs 读取超大的 XML 文件:

$reader = new XMLReader();
$reader->open($xmlfile);

超大的 XML 文件应该以压缩格式存储在磁盘上。至少这是有道理的,因为 XML 文件具有很高的压缩率。例如压缩成 large.xml.gz

PHP 通过 compression wrappersDocs 使用 XMLReader 很好地支持了这一点:

$xmlfile = 'compress.zlib://path/to/large.xml.gz';

$reader = new XMLReader();
$reader->open($xmlfile);

XMLReader 允许您“仅”对当前元素进行操作。这意味着它是只向前的。如果您需要保持解析器状态,则需要自己构建它。

我经常发现将基本 Action 包装到一组迭代器中很有帮助,这些迭代器知道如何在 XMLReader 上进行操作,例如仅迭代元素或子元素。您会在 Parse XML with PHP and XMLReader 中找到此概述。

另见:

关于php - 在 php 中解析非常大的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363901/

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