我有一个关于SAX的相对一般性的问题。我理解它是如何工作的,并且根据我读过的教程,我学会了通过让大量的数据成员像inNode一样保持状态是布尔值,然后在每个事件处理程序中,检查每个布尔值并相应地处理参数
对我来说,这似乎效率很低,是否有更高效的方式,或者仅仅是SAX的本质?
谢谢, 克里斯
答案 0 :(得分:2)
通常,您可以通过简单的标签堆栈来保持状态。
当您输入节点时,请按。
离开节点时,弹出。
有时这比许多布尔人好。相反,您检查堆栈以查看是否存在正确的上下文以保留正在解析的数据。
答案 1 :(得分:0)
这就是SAX的工作原理。它专为低内存使用和更简单的处理而设计。如果您的代码过于复杂,您可能希望使用DOM模型。