什么是“推方法”和“拉方法”进行解析?


问题内容

在推送解析方法下,推送解析器在解析文档时会生成同步事件,并且这些事件可以由应用程序使用回调处理程序模型进行处理

这是在 Pro XML Development with Java中 有关SAX 2.0 的书中给出的内容。

至于StAX,这本书说:

在拉取方法下,使用解析器在应用程序的控制下从XML文档中拉取事件。

我想问一下,突出显示的文字是什么意思?一个适合初学者的答案表示赞赏:)


问题答案:

基本上,推是指解析器对某个处理程序说:“我有一个foo,对其进行处理。” 当处理程序对解析器说“给我下一个foo”时,即为拉。

推:

if (myChar == '(')
    handler.handleOpenParen(); // push the open paren to the handler

拉:

Token token = parser.next(); // pull the next token from the parser