php - 为 MySQL 解析一个大的 XML 文件

标签 php sql xml dom

我有一个非常大的 XML 文件 (1.5GB),我需要对其进行解析,然后将特定值插入到 MySQL 表中。

现在,我通常在 DOM 上进行解析的方式是使用 jQuery 或 PHP Simple Dom Parser,但在这种情况下,考虑到文件大小,我认为两者都不合适。我需要强调性能。我读过一些关于 SimpleXML 和 XML Parser for PHP 的文章,它们似乎各有优势,但我不确定它们是否适合 1.5GB 大小的文件。

我也看到提到了 Pear 的 XML 解析器,但是,同样,我不知道这是否适合这种情况。从我读过的内容来看,我似乎只需要将所需的节点而不是整棵树本身加载到内存中。即使是现在,由于尺寸的原因,我在实际查看文档时也遇到了麻烦。 VIM 似乎是唯一可以处理它的编辑器,但即使滚动浏览文档也可能导致崩溃。

如果有人可以推荐其中一个,甚至是一个完全不同的解决方案,那就太好了。

然后我将进入我要即时执行的 SQL 插入 - 所以在我解析了一个节点并提取了我需要的值之后,我将把它们插入到数据库中。同样,任何建议都会很棒。

最佳答案

对于如此巨大的 XML 文件,建议使用 SAX基于 XML 解析器。在 PHP 中,您可以使用“XML Parser”来完成。它比 peers 消耗更少的内存.而且速度非常快。

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

相关文章:

php - Facebook 广告 API PHP : Video upload using AdVideo class

php - UTF-8 和 PHP,mbstring.func_overload 不起作用

javascript - 查询连接两个表,但另一个表需要位于另一个内部数组中

sql - 数据库不区分大小写索引?

php - 将选项传递给 jquery 文件的正确方法是什么?

php - Codeigniter 3 显示所有在线用户

sql - 为什么在这些示例中的 GROUP BY 和 HAVING 子句中使用许多列

java - Jaxb 解码包含 & <> 符号的 xml

xml - Visual Studio 2008 自定义配置 xsd intellisense 自动完成损坏!

sql - 将两级 XML 列表中的值提取到 SQL 列中