我知道 xmlreader 和其他基于树的解析器(如 simplexml 和 dom)之间的区别。但是xmlreader和xmlparser有什么区别呢?使用一个比另一个有什么好处吗?
我需要解析比较大的 xml 文件,affiliate datafeeds 大约 100M。
最佳答案
他们使用两种不同的软件架构 - 推与拉。
XMLReader 是一个“拉式解析器”。您负责创建一个大循环并调用 read() 函数来向前移动光标。这种软件架构往往更容易直观地理解。
XMLParser 是一个基于事件的“推送解析器”。您负责注册由 start_element、end_element、character_data、start_namespace_decl 等事件触发的回调函数。当您调用 xml_parse() 时,Expat 库将使用您的回调函数处理整个 XML 文档。
如果您不了解推架构与拉架构之间的微妙之处,那么我建议您从 XMLReader 入手,因为“拉”更易于理解且更易于可视化。
关于php xmlReader 与 xmlparser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050342/