SAX代码效率

时间:2009-08-25 19:19:05

标签: xml sax

我有一个关于SAX的相对一般性的问题。我理解它是如何工作的,并且根据我读过的教程,我学会了通过让大量的数据成员像inNode一样保持状态是布尔值,然后在每个事件处理程序中,检查每个布尔值并相应地处理参数

对我来说,这似乎效率很低,是否有更高效的方式,或者仅仅是SAX的本质?

谢谢, 克里斯

2 个答案:

答案 0 :(得分:2)

通常,您可以通过简单的标签堆栈来保持状态。

当您输入节点时,请按。

离开节点时,弹出。

有时这比许多布尔人好。相反,您检查堆栈以查看是否存在正确的上下文以保留正在解析的数据。

答案 1 :(得分:0)

这就是SAX的工作原理。它专为低内存使用和更简单的处理而设计。如果您的代码过于复杂,您可能希望使用DOM模型。