php - 在 PHP 中处理大型 XML 的最佳方式

标签 php xml parsing simplexml large-files

<分区>

我必须在 php 中解析大型 XML 文件,其中一个文件有 6.5 MB,而且它们可能更大。 我读过的 SimpleXML 扩展将整个文件加载到一个对象中,这可能不是很有效。 根据您的经验,最好的方法是什么?

最佳答案

对于大文件,您需要使用 SAX parser而不是 DOM 解析器。

使用 DOM 解析器,它将读取整个文件并将其加载到内存中的对象树中。使用 SAX 解析器,它将顺序读取文件并调用用户定义的回调函数来处理数据(开始标记、结束标记、CDATA 等)

使用 SAX 解析器时,您需要自己维护状态(例如,您当前所在的标签),这会使它变得有点复杂,但对于大文件而言,内存效率会高得多。

关于php - 在 PHP 中处理大型 XML 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167062/

相关文章:

javascript - 如何在codeigniter中获取选中的复选框表行值

Android如何在具有 ImageView 和 TextView 的圆形中创建这样的 View

xml - 无法为 Go 结构解码 XML

c++ - Boost::Spirit 与解析字符串的斗争

c++ - 从文件中读取字符串和 double 的组合

php - 将 js 文件的输出传递到另一个 php 文件

php - 使用 php mysql 每行显示 2 或 3 个图像

php - 为什么在对大数组使用 array_map 时内存溢出?

xml - 如何使用 Perl 的 XML::Twig 向子元素添加属性?

python - 通过 xpath 使用 lxml 解析 html 的问题