有人可以幫助我使用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