问题描述
|
我遇到了两个不同的代码,用于解析带有“ 0”的文件。快速浏览一下,我发现有两种解析方法:使用游标API和使用迭代器API。请告诉我两者之间的区别,以及从开发人员的角度来看哪个更易于使用。
解决方法
您最有可能在Java Web Services Developer Pack教程或Java EE 5教程的StAX API部分中找到答案。它们都包含我在下面复制的相同信息:
比较游标和迭代器API
在光标和之间选择之前
迭代器API,您应该注意一些
你可以做的事情
您无法使用的迭代器API
游标API:
从XMLEvent子类创建的对象是不可变的,并且可以
用于数组,列表和地图,以及
可以通过你的
甚至在解析器具有
继续进行后续事件。
您可以创建完全不完整的XMLEvent子类型
新的信息项或扩展
现有项目,但还有其他
方法。
您可以更加简单地从XML事件流中添加和删除事件。
与使用游标API的方式不同。
同样,保持一些一般
提出建议时要牢记
你的选择:
如果您正在为特别受内存限制的程序进行编程
环境,例如J2ME,您可以
较小,更有效的代码
游标API。
如果您将性能放在首位-例如,在创建时
低级库或
基础架构-游标API更加强大
高效。
如果要创建XML处理管道,请使用迭代器
API。
如果要修改事件流,请使用迭代器API。
如果您希望您的应用程序能够处理可插拔处理
事件流,请使用迭代器
API。
通常,如果您对某一种方法没有强烈的偏好,或者
其他,使用迭代器API是
推荐,因为它更
灵活且可扩展,从而
“面向未来”的应用程序。
尽管推荐使用迭代器API,但它比游标API慢,因为游标不需要记住已解析的先前节点;它提供XML文档的前向解析,并且没有构造“ 1”对象的开销。显然,有一个基准测试表明,与StAX相比,SAX可能在解析大型文档方面更好。您可能需要验证是否可以为数据集重现基准测试的结果。
, 如果您不解析长XML文件,则可以简单地使用JDOM,JDOM将整个XML加载到内存中并且速度较慢,但是使用起来非常容易。
杰多姆