我正在尝试为我的Java项目选择XML处理框架,我迷失了名字...... XOM,JDOM等。在哪里可以找到所有流行的Java XML框架的详细比较?
答案 0 :(得分:60)
正如布莱斯指出的那样坚持标准。但是,在此期间创建了多个标准来解决不同的问题/用例。选择哪一个完全取决于您的要求。我希望以下比较可以帮助您选择正确的。
现在你必须选择两件事。 API 和API的实施(有很多)
SAX:优点
SAX:缺点
DOM:优点
DOM:缺点
Stax:专业人士
Stax:Cons
JAXB:专业人士
JAXB:缺点
Trax:使用XSLT将XML从1种形式转换为另一种形式
SAX,DOM,Stax,JAXB只是规格。有很多open source and commercial implementations of these specifications。大多数情况下,您可以坚持使用JDK或您的应用程序服务器。但有时您需要使用默认提供的不同实现。这是您可以欣赏JAXP wrapper api的地方。 JAXP 允许您通过配置切换实现,而无需修改代码。它还提供了解析器/规范独立的api,用于解析,转换,验证和查询XML文档。
各种实施的效果和其他比较
现在标准很好但是偶尔遇到这个疯狂的用例,你必须支持解析 100千兆字节大小的XML文档,或者你需要超快处理XML(可能是您正在实现XML解析器芯片),这就是您需要转储标准并寻找不同的处理方式。它是关于使用正确的工具正确的工作!这是我建议您查看vtd-xml
的地方在SAX和DOM的最初几天,人们想要比其中任何一个提供的API更简单。 JDOM,dom4j,XmlBeans,JiBX,Castor是我认识的流行广告。
答案 1 :(得分:2)
@ Pangea
JAXB与DOM和SAX无法直接比较。 Java DOM和SAX 解析API是用于解析XML文档的低级API,而JAXB (用于XML绑定的Java API)是用于转换XML的更高级API Java对象层次结构的元素和属性(反之亦然)。 JAXB的实现很可能使用DOM或SAX解析器 在幕后进行XML输入数据的实际解析。