This question already has answers here:
Parsing Huge XML Files in PHP

(11个答案)


3年前关闭。




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

最佳答案

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

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

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

09-12 16:48