在用java输入和输出xml的所有库中,在哪些情况下,commons-digester是首选工具?
来自沼气池维基
为什么要使用Digester?
Digester是SAX xml解析器API之上的一个层,可以更轻松地处理xml输入.特别是,digester使得基于xml输入文件创建和初始化对象树变得容易.
Digester最常见的用途是处理xml格式的配置文件,根据该信息构建对象树.
请注意,digester可以创建和初始化真实对象,即与应用程序的业务目标相关并具有真实行为的事物.许多其他工具有不同的目标:在输入XML文档中构建数据模型,就像W3C DOM一样,但更友好一些.
和
与生成类的工具不同,您可以先编写应用程序的类,然后再决定使用Digester从xml输入文件构建它们.结果是你的类是具有真实行为的真实类,恰好是从xml文件初始化的,而不是仅仅保存数据的简单"结构".
作为它不用于的内容的一个例子:
但是,如果您正在寻找输入xml文档的直接表示,作为数据而不是真实对象,则消化器不适合您; DOM,jDOM或其他更直接的绑定工具将更合适.
因此,digester会将XML直接映射到java对象中.在某些情况下,这比阅读树和提取选项更有用.
我的第一个建议是“从不” ...但是也许有它的位置。我同意eljenso的观点,它已经被竞争所超越。
因此,为了获得高效且简单的对象绑定/映射,JAXB更好,或者称为XStream。更方便,甚至更快。
EDIT 2019:同样,Jackson XML,在方法上类似于JAXB,但使用Jackson批注