<分区>
我必须在 php 中解析大型 XML 文件,其中一个文件有 6.5 MB,而且它们可能更大。 我读过的 SimpleXML 扩展将整个文件加载到一个对象中,这可能不是很有效。 根据您的经验,最好的方法是什么?
<分区>
我必须在 php 中解析大型 XML 文件,其中一个文件有 6.5 MB,而且它们可能更大。 我读过的 SimpleXML 扩展将整个文件加载到一个对象中,这可能不是很有效。 根据您的经验,最好的方法是什么?
最佳答案
对于大文件,您需要使用 SAX parser而不是 DOM 解析器。
使用 DOM 解析器,它将读取整个文件并将其加载到内存中的对象树中。使用 SAX 解析器,它将顺序读取文件并调用用户定义的回调函数来处理数据(开始标记、结束标记、CDATA 等)
使用 SAX 解析器时,您需要自己维护状态(例如,您当前所在的标签),这会使它变得有点复杂,但对于大文件而言,内存效率会高得多。
关于php - 在 PHP 中处理大型 XML 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167062/