php - 解析和操作 XML 文件(大小至少为 1000 MB 或以上)的最佳实践

标签 php xml

Possible Duplicates:
PHP what is the best approach to using XML? Need to create and parse XML responses
Parse big XML in PHP

社区您好,

我正在编写一个应用程序,需要解析 XML 文件,该文件的大小至少为 1000 MB 或更大。

我尝试过使用互联网上提供的一些代码。随着文件大小的增加,很容易理解文件中会有很多很多的 XML 标签。因此,随着时间的流逝,循环性能会变弱。

所以,我需要一个解析器: -> 在执行/解析时,随着时间的推移,性能相当好 -> 不将整个 XML 文件加载到内存中

我知道以下 XML 解析器,但不确定使用哪个以及为什么?

  1. XML 解析器
  2. 简单XML
  3. XMLReader

我使用的是 PHP 5.3,所以请帮助我选择解析器。

您甚至可以建议我一些其他选项或类(class)。

谢谢。

编辑

我什至想了解 PHP 的 SAX(Simple API for XML)和 StAX 实现

最佳答案

首先,您无法在内存中加载那么多 XML。这取决于您的计算机,但如果您的 XML 文件超过 10-20 MB,那么通常就太大了。服务器可能能够处理更多数据,但用一个脚本填满所有内存并不是一个好主意。因此您可以从一开始就排除 SimpleXML 和 DOM。

另外两个选项 XML Parser 和 XMLReader 都很好,其中 XMLReader 是较新的扩展,因此可能更好。但作为警告,您应该注意 XMLReader 还允许您将所有内容加载到内存中。不要那样做。相反,将其用作逐节点解析器并以小位读取/处理数据。

如果您需要 XML 中的大部分数据,那么您的问题可能超出了选择解析器的范围。您还应该确保将其全部加载到内存中并在脚本末尾使用它。相反,当你得到它时就使用它,当你不再需要它时就将其丢弃。

关于php - 解析和操作 XML 文件(大小至少为 1000 MB 或以上)的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632474/

相关文章:

php - 如何在xampp上安装wkhtmltopdf?

php - LARAVEL - 未找到基表或 View : 1146 Table doesn't exist (SQL: select * from )

c# - 如何在现有的完全空的 .xml 文件中写入内容?

java - Android:无法读取xml

python - 在Python中解析XML

JavaScript 的 confirm() 的 PHP 版本

php - 如何在wordpress自定义中添加颜色选项

php - 从 mysql 数据库获取加入日期并将其作为可读格式回显

xml - 带外部文件的 dart xml

java - XPath 查询返回重复节点