Dom解析器和Xerces Parser之间的区别

嘿,任何人都可以告诉我,“Dom解析器”和“Xerces Parser”之间有什么区别。 两者的优点和缺点是什么?

Xerces 一个DOM解析器。 它是Java或C ++中的Apache实现。

你想要考虑的两个是SAX和DOM。 DOM在内存中创建一个对象树; SAX没有。 完成DOM解析后,您可以操作对象树; SAX使用事件模型来动态处理XML。

SAX或DOM都将“正常工作”。 您的选择通常取决于您是否将其保留在内存中以对其进行操作或对其进行处理。 如果XML流是千兆字节,您可能无法一次性存储它。 在这种情况下,SAX是一个不错的选择,因为您可以在解析时动态使用它。

谷歌是你的朋友:开始学习DOM4J和JDOM。

如果你正在编写Java,我会推荐JDOM。 它处理了许多样板材料。

有两种方法可以在Xerces.viz SAX和DOM中解析xml文件。 SAX解析器:

  1. 基于事件的模型。
  2. 串行访问(事件流)。
  3. 内存使用率低(仅生成事件)。
  4. 处理文档的部分内容(捕获相关事件)。
  5. 仅处理文档一次。
  6. 后向导航是不可能的,因为它顺序处理文档。
  7. 要创建对象。

DOM解析器:

  1. (基于对象)树数据结构。
  2. 随机访问(内存数据结构)。
  3. 内存使用率高(文档被加载到内存中)。
  4. 编辑文档(处理内存中的数据结构)。
  5. 要多次处理(文档加载到内存中)。
  6. 易于导航。
  7. 存储为对象。