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

时间:2010-06-30 11:09:32

标签: java xml-parsing

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

2 个答案:

答案 0 :(得分:7)

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

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

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

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

如果您正在编写Java,我建议使用JDOM。它会处理许多样板文件。

答案 1 :(得分:3)

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

  1. 基于事件的模型。
  2. 串行访问(事件流程)。
  3. 内存使用率低(仅生成事件)。
  4. 处理部分文件(捕捉相关事件)。
  5. 仅处理文档一次。
  6. 无法向后导航,因为它会按顺序处理文档。
  7. 要创建对象。
  8. DOM Parser:

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