我正在测试各种方法来读取 PHP 中的 XML 配置文件(可能很大,读取非常频繁)。从来不需要写作。我有两个成功的实现,一个使用SimpleXML(我知道它是一个 DOM 解析器),一个使用XMLReader。
我知道 DOM 阅读器必须读取整个树,因此会使用更多内存。我的测试反映了这一点。我也知道 SAX 解析器是一个“基于事件”的解析器,它使用更少的内存,因为它从流中读取每个节点而不检查下一个节点。
XMLReader 还使用游标从流中读取,提供有关它当前所在节点的数据。因此,听起来 XMLReader ( http://us2.php.net/xmlreader ) 绝对不是DOM 解析器,但我的问题是,它是 SAX 解析器还是其他什么?看起来 XMLReader 的行为方式与 SAX 解析器的行为方式相同,但不会自己抛出事件(换句话说,您可以使用 XMLReader 构建 SAX 解析器吗?)
如果是别的东西,它所在的分类有名称吗?