代码之家  ›  专栏  ›  技术社区  ›  Chris Thompson

SAX代码效率

  •  1
  • Chris Thompson  · 技术社区  · 15 年前

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

    对我来说,这似乎真的很低效,有没有更有效的方法,或者这只是SAX的本质?

    谢谢, 克里斯

    2 回复  |  直到 15 年前
        1
  •  2
  •   S.Lott    15 年前

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

    当你进入一个节点时,你按下。

    离开节点时,会弹出。

    有时候这比很多布尔人要好。相反,您要检查堆栈,看看是否有正确的上下文来保存正在分析的数据。

        2
  •  0
  •   Zed    15 年前

    这就是SAX的工作原理。它是为低内存使用和更简单的处理而设计的。如果您的代码变得太复杂,您可能需要使用DOM模型来代替。