用Digester 解析xml,我晕了,大侠们来帮个忙!!

xml文件很简单:如下






用Digester解析哦,我仿照apache提供的链接教材试了半天没出来,-_-!!!
http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html

[b]问题补充:[/b]
to wangxuliangboy :

节点的type如何处理,
我自己的代码与你的处理过程很类似,只是多了:
digester.addSetProperties( "person/hands/hand ", "type", "type" );

但返回的总是有问题,后台却不报错。。。!!

不是你这样读取属性的..
digester.addSetProperties("person"); //根据元素的属性(attribute),对刚创建的person对象的属性(property)进行设置

但你的Person对象里面必须有这些属性的get,set方法

Digester digester = new Digester();
digester.setValidating(false); //不进行XML与相应的DTD的合法性验证
digester.addObjectCreate("person","与Person对应的类,比如:aa.Person"); //遇到时创建一个person对象,并将其放在栈顶
digester.addObjectCreate("person/hands", "与hands对应的类型"); //当遇到的子元素时创建一个hands对象,并将其放在栈顶。
//你的hand对象里面应该有type属性
digester.addObjectCreate("person/hands/hand", "与hand对应的类型"); //当遇到的子元素的子元素时创建一个hand对象,并将其放在栈顶。
//当在次遇到person/hands/hand结点时,调用addHand方法.这说明在与hands对应的类型中,你要加入一个addHand方法,
//比如:public void addHand(Hand h){List.add(h);}
digester.addSetNext("person/hands/hand","addHand","与hand对应的类型"); //当再次遇到的子元素时创建一个mypackage.Bar对象,并将其放在栈顶,同时调用第二栈顶元素(Foo对象)的addBar方法
//最后在调用parse方法的时候会返回根对象
Person foo=(Person)digester.parse(Digester_XMLParse.class.getResource("")+"dig.xml");
System.out.println(foo.getName());

digester.addSetProperties("foo"); //根据元素的属性(attribute),对刚创建的Foo对象的属性(property)进行设置