4

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

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

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

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

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

4

2 回答 2

2

对于如此庞大的 XML 文件,建议使用基于SAX的 XML 解析器。在 PHP 中,您可以使用“ XML Parser ”来完成。它消耗的内存比同类产品少。它也非常快。

于 2013-01-12T18:46:17.180 回答
2

SimpleXml 和 DOM 不适用于大型 XML 文件

尝试:

甚至更好/更快(但使用起来稍微复杂一些)

于 2013-01-12T18:51:44.673 回答