我是操作XML的JAXB的忠实粉丝.基本上,它提供了解决此问题的方法(我假设您熟悉XML,Java数据结构和XML模式):
使用XML很困难.人们需要一种方法来获取XML文件 – 基本上是一个文本文件 – 并将其转换为某种数据结构,然后程序可以操作.
JAXB将采用您编写的XML Schema并创建一组与该模式对应的类. JAXB实用程序将创建用于操作该XML的数据结构层次结构.
然后可以使用JAXB读取XML文件,然后创建生成的类的实例 – 包含XML中的数据. JAXB也反过来:接受java类,并生成相应的XML.
我喜欢JAXB,因为它易于使用,并且附带Java 1.6(如果你使用1.5,你可以下载JAXB .jars.)它创建类层次结构的方式很直观,而且根据我的经验,它做得不错抽象出“XML”,以便我可以专注于“数据”.
所以回答你的问题:我希望,对于小型XML文件,JAXB可能有点过分.它要求您创建和维护XML模式,并使用“标准教科书方法”将Java类用于数据结构. (主类,表示“节点”的小内部类,以及它们的巨大层次结构.)因此,对于应用程序的“首选项”的简单线性列表,JAXB可能不那么好.
但是如果你有一个相当复杂的XML模式,并且其中包含大量数据,那么JAXB就太棒了.在我的项目中,我在二进制(由C程序使用)和XML(以便人类可以使用和修改该数据)之间转换大量数据.生成的XML Schema非常重要(层次结构的层次很多,某些字段可以重复,其他字段不能重复),因此JAXB有助于操作它.