我正在测试各种方法来读取(可能很大,非常频繁的读取)PHP配置文件.不需要写作.我有两个成功的实现,一个使用SimpleXML(我知道是一个DOM解析器)和一个使用XMLReader.
我知道DOM读取器必须读取整个树,因此使用更多内存.我的测试反映了这一点我也知道SAX解析器是一个“基于事件”的解析器,它使用较少的内存,因为它从流中读取每个节点而不检查接下来的内容.
XMLReader还使用游标从流中读取,提供有关其当前所在节点的数据.所以,听起来像XMLReader(http://us2.php.net/xmlreader)并不是一个DOM解析器,但我的问题是,它是SAX解析器还是别的?看起来XMLReader的行为与SAX解析器的行为方式相似,但不会自行抛出事件(换句话说,您可以使用XMLReader构建SAX解析器吗?)
如果它是别的,那么它的分类是否有名字?
解决方法:
XMLReader 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与此项目的目标和意图相关,那么您的问题的答案完全属于“不”类别.