php xmlReader 与 xmlparser

标签 php xml-parsing simplexml xmlreader

我知道 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/

相关文章:

php - 从另一个 xpath 查询节点查询 xpath

php - 如何在 Laravel SQL 查询中的 where 子句中使用对象

java - 如何计算上传文件 PDF、Doc、Xls、Csv 等中的单词字符或句子

java - 在 Java 中读取 XML 文件内容

php - SimpleXML:将XML属性值添加到数组

用于 SimpleXML 对象的 PHP array_walk_recursive()?

javascript - 使用 Ajax 返回 JQuery

javascript - 在 PHP 中动态地将图像添加到 JQuery slider

ruby-on-rails - 文档 "doc.xml"没有有效的根 (REXML::ParseException)

Golang,解析xml来构造?