我必须在php中解析大型XML文件,其中之一是6.5 MB,它们甚至可能更大。如我所读,SimpleXML扩展将整个文件加载到一个对象中,这可能不是很有效。以您的经验,最好的方法是什么?
对于大文件,您将要使用SAX解析器而不是DOM解析器。
使用DOM解析器,它将读取整个文件并将其加载到内存中的对象树中。使用SAX解析器,它将顺序读取文件并调用用户定义的回调函数来处理数据(开始标记,结束标记,CDATA等)。
使用SAX解析器,您需要自己维护状态(例如,您当前所处的标记),这会使它变得更加复杂,但是对于大文件,这将是更有效的内存管理方式。