有人可以帮助我使用Digester API从下面的XML文件创建Java对象。使用Digester从XML文件创建Java对象
我有一类公司有地图这样
Map<String,Department> nameToDeptMap= new HashMap<String,Department>();
我想下面的XML数据加载到该地图。
Department is super class. Development,Testing,Requirment...etc are extending that class.
<Company>
<Employee empname="xyz" department ="com.compnayname.departments.department.Development>
<Employee empname="xyza" department ="com.compnayname.departments.department.Testing>
<Employee empname="xyzab" department ="com.compnayname.departments.department.Requiremetns>
<Employee empname="xyzabc" department ="com.compnayname.departments.department.Production>
.
.
.
.
</Company>
当Map加载时,我会通过“empname”来获取部门对象。
如果你想知道我在做什么,请参阅下面的代码。我知道这是错误的。
我的Java文件是这样的..
我能写沼气池规则,以获得从XML文件作为字符串的值,但不知道怎么弄的对象。
Digester digester = new Digester();
digester.addObjectCreate("Company/Employee", Company.class);
digester.addCallMethod("Company/Employee", "setComapnyConfigMap", 2);
digester.addCallParam("Company/Employee", 0, "empname");
digester.addCallParam("Company/Employee", 1, "department");
:> Using JDK 1.6 , commons-digester-2.0.
确定。感谢您的回应。等着瞧。 – 2014-09-30 17:13:30
@Larry:我认为这正是Digester设计的目标:解析XML并根据模式匹配触发提供的或自定义的规则。您引用的那一段的下一段: “基本上,Digester包允许您配置一个XML - > Java对象映射模块,只要识别出嵌套的XML元素的特定模式,就会触发某些称为规则的操作。的预定义规则可供您使用,或者您也可以创建自己的规则。“ – Barney 2014-10-11 10:25:44
”许多项目读取** XML配置文件**以提供系统内各种Java对象的初始化。有几种方法可以做到这一点,而Digester组件旨在提供一个可用于许多不同项目的通用实现。“ – Larry 2014-10-12 11:32:55