一尘不染

在PHP中处理大型XML的最佳方法

php

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


阅读 220

收藏
2020-05-29

共1个答案

一尘不染

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

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

使用SAX解析器,您需要自己维护状态(例如,您当前所处的标记),这会使它变得更加复杂,但是对于大文件,这将是更有效的内存管理方式。

2020-05-29