问题描述
嘿,任何人都可以告诉我,“Dom解析器”和“Xerces Parser”之间有什么区别。 两者的优点和缺点是什么?
1楼
Xerces 是一个DOM解析器。 它是Java或C ++中的Apache实现。
你想要考虑的两个是SAX和DOM。 DOM在内存中创建一个对象树; SAX没有。 DOM完成解析后,您可以操作对象树; SAX使用事件模型来动态处理XML。
无论是SAX还是DOM都会“起作用”。 您的选择通常取决于您是否将其保留在内存中以对其进行操作或对其进行处理。 如果XML流是千兆字节,您可能无法一次性存储它。 在这种情况下,SAX是一个不错的选择,因为您可以在解析时动态使用它。
谷歌是你的朋友:开始学习DOM4J和JDOM。
如果你正在编写Java,我会推荐JDOM。 它处理了许多样板材料。
2楼
有两种方法可以在Xerces.viz SAX和DOM中解析xml文件。 SAX解析器:
- 基于事件的模型。
- 串行访问(事件流)。
- 内存使用率低(仅生成事件)。
- 处理文档的一部分(捕获相关事件)。
- 仅处理文档一次。
- 后向导航是不可能的,因为它顺序处理文档。
- 要创建对象。
DOM解析器:
- (基于对象)树数据结构。
- 随机访问(内存数据结构)。
- 高内存使用率(文档被加载到内存中)。
- 编辑文档(处理内存中的数据结构)。
- 要多次处理(文档加载到内存中)。
- 易于导航。
- 存储为对象。