java - 什么 xml 解析器符合这些要求?

标签 java xml dom sax stax

我一直在阅读有关使用 SAX、STAX 和 dom 读写 xml 的知识。我的问题是,即使在阅读了优点和缺点之后,我仍然不确定哪个最适合我的目的——尽管 DOM 确实看起来是最简单的,但我将在内存很少的非常弱的服务器上运行这个程序,所以如果可能的话,我很想提高程序的效率。对服务器的高需求也会插入对效率的需求。

这是我需要的:

  1. 只需通读从中提取不同数据的 xml 文档。在这一点上,我已经决定 SAX 解析器将是我所需要的,因为它显然是最快的?

  2. 不过,我还需要能够生成xml文档。在这一点上,我觉得很好 - 我应该使用 STAX,因为它似乎具有与 SAX 类似的功能,但允许生成 xml 代码。

  3. 最棘手的是我需要能够通读现有的 xml 文档并编辑它的特定部分,即开始和结束标记之间的字符。 DOM 看起来是执行此操作的最佳方法,但是每个人都说 DOM 使用大量资源并且速度很慢。那么这对 Stax 来说可能吗?

我想使用 dom 但担心内存和处理器使用等问题。

我能问一下在现实世界的例子中与 STax 相比它会使用多少资源吗? xml 文件不太可能很大,我只需要进行一些读写操作。也就是说,这个程序是一个游戏,一开始我需要加载一个球员的信息,最后,找到球员的xml信息,并尽快根据球员的表现进行修改。

非常感谢任何答案/建议

最佳答案

使用萨克斯 当您想修改 XML 时,这不会帮助您

使用DOM 由于您关心内存(效率),因此这是行不通的

使用斯塔克斯 这有助于解决您的顾虑。你也指出了它。讨论了如何使用 Stax 修改 XML here

关于java - 什么 xml 解析器符合这些要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334435/

相关文章:

java - CentOS 7中通过jenkins构建时如何设置JRE和JDK的正确路径?

java - Jersey @DefaultValue 不适用于正则表达式定义的路径

java - 从过滤器转发请求

javascript - 如何在 JavaScript 中将 xml 存储为字符串变量?

javascript - 为什么 Ractive.js 的 reset() 和 update() 方法在有一个带有 array.prototype.sort() 的助手和一个空对象的数据时复制模板

java - 如果我可以保证我将同时读取/写入不同区域,是否可以同时读取/写入内存映射文件?

wpf - 带有 XML 模型和 LinqToXml 的 MVVM?

java - 使用 xslt 将文本转换为 xml

python - Selenium Python : Download PDF specified by DOM object

javascript - 防止页面未加载时运行 JS