Java 什么样的xml解析器适合这些要求?

Java 什么样的xml解析器适合这些要求?,java,xml,dom,sax,stax,Java,Xml,Dom,Sax,Stax,我一直在学习使用SAX、STAX和dom进行xml读写。我的问题是,即使在阅读了优缺点之后,我仍然不确定哪一个对我的目的来说是最好的——虽然DOM看起来确实是最简单的,但我将在一个非常弱的服务器上运行这个程序,并且内存很少,所以如果可能的话,我希望使程序更加高效。对服务器的高需求也会推动对效率的需求 我需要的是: 只需读取从中提取不同数据的xml文档。在这一点上,我已经决定SAX解析器将是我所需要的全部,因为它显然是最快的 但是,我还需要能够生成xml文档。在这一点上,我认为很棒-我应该使用ST

我一直在学习使用SAX、STAX和dom进行xml读写。我的问题是,即使在阅读了优缺点之后,我仍然不确定哪一个对我的目的来说是最好的——虽然DOM看起来确实是最简单的,但我将在一个非常弱的服务器上运行这个程序,并且内存很少,所以如果可能的话,我希望使程序更加高效。对服务器的高需求也会推动对效率的需求

我需要的是:

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

  • 但是,我还需要能够生成xml文档。在这一点上,我认为很棒-我应该使用STAX,因为它似乎具有与SAX类似的功能,但是允许生成xml代码

  • 最棘手的是,我需要能够通读现有的xml文档并编辑其中的特定部分,即开始标记和结束标记之间的字符。DOM看起来是最好的选择,但是每个人都说DOM使用了很多资源,而且速度非常慢。那么Stax有可能做到这一点吗

  • 我想使用dom,但我关心内存和处理器的使用情况等

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

    非常感谢您使用Sax提供的任何答案/建议

    当您想要修改XML时,这对您没有帮助

    使用DOM 因为你关心内存(效率),这是行不通的

    使用Stax
    这有助于解决您的问题。你也指出了这一点。讨论了如何使用Stax修改XML

    如果XML文件不是很大,不要担心效率。@Patashu抱歉-不是最好的问题问:但是什么定义了大XML文件?我对xml文件没有经验,所以不确定它们能有多大。ThanksLarge是相对的,例如,large足够大,如果没有明显的减速,就无法解析它。以最简单的方式实施,然后,如果且仅当速度太慢时,你就会研究如何加快速度(以科学的方式,分析等)@Patashu Thank a lotI发现很难相信土木工程师会在互联网上发表这样的言论“我必须在一条很宽的河上建一座桥,我应该用吊桥还是梁桥?”不是因为他们不想承认自己的无知,而是因为他们会本能地告诉你这条河的实际宽度,知道“很宽”可能意味着从50米到2500米的任何东西。给我们数字!