gpt4 book ai didi

php - XMLReader 是 SAX 解析器、DOM 解析器,还是两者都不是?

转载 作者:可可西里 更新时间:2023-11-01 00:04:12 25 4
gpt4 key购买 nike

我正在测试在 PHP 中读取(可能很大,读取非常频繁)XML 配置文件的各种方法。永远不需要写作。我有两个成功的实现,一个使用 SimpleXML(我知道它是一个 DOM 解析器),另一个使用 XMLReader

我知道 DOM 读取器必须读取整棵树,因此会占用更多内存。我的测试反射(reflect)了这一点。我也知道 SAX 解析器是一个“基于事件”的解析器,它使用较少的内存,因为它从流中读取每个节点而不检查下一个节点。

XMLReader 还从流中读取游标,提供有关其当前所在节点的数据。所以,听起来 XMLReader ( http://us2.php.net/xmlreader ) 显然不是 DOM 解析器,但我的问题是,它是 SAX 解析器还是其他?似乎 XMLReader 的行为方式与 SAX 解析器的行为方式相同,但不会自行抛出事件(换句话说,您可以使用 XMLReader 构建 SAX 解析器吗?)

如果是其他东西,它所在的分类有名称吗?

最佳答案

XML 阅读器 calls itself a "pull parser."

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

它后来继续说它使用 libxml .

This page on Java XML Pull Parsing可能有一些可能的兴趣。如果 XMLReader 与该项目的目标和意图相关,那么您问题的答案完全属于“两者都不是”类别。

关于php - XMLReader 是 SAX 解析器、DOM 解析器,还是两者都不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3048437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com