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

Man*_*anu 2 java xml-parsing

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

duf*_*ymo 8

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

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

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

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

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


Din*_*esh 5

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

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

DOM 解析器:

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