Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » 技术文章库  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 初次写点东西,关于使用Common Digester处理xml文件
sailorhero





发贴: 70
积分: 16
于 2004-06-30 21:57 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
现在很多软件使用xml作为配置文件,但处理起来还是非常麻烦,在Jakarta Project 工程中,有一个Common Digester包可以帮助我们处理xml类型的配置文件。

除了读取xml配置文件外,这个软件也非常适合用于将xml转为JavaBean。
假定xml文件如下:
<foo name="The Parent">
<bar id="123" title="The First Child"/>
<bar id="456" title="The Second Child"/>
</foo>

对应的JavaBean类定义如下:

public class Bar {
private int id;
private String title;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
public class Foo {
private String name;
private Vector bars = new Vector();
public void addBar(Bar bar) {
bars.add(bar);
}
public Bar findBar(int id) {
Iterator iterator = bars.iterator();
if(iterator.hasNext()){
Bar bar = (Bar)iterator.next();
if(bar.getId() == id){
return bar;
}
}
return null;
}
public Iterator getBars() {
return bars.iterator();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

在后面处理中,只需要简单处理,即可将xml描述的对象转换为JavaBean对象。
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate(foo, mypackage.Foo);
digester.addSetProperties(foo);
digester.addObjectCreate(foo/bar, mypackage.Bar);
digester.addSetProperties(foo/bar);
digester.addSetNext(foo/bar, addBar, mypackage.Bar);
try {
Foo foo = (Foo) digester.parse(D:/java/eclipse/workspace/Digester/src/mypackage/utils/Bar.xml);
System.out.println(foo);
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在SenTom网站上,有一篇详细的介绍文档。
第七期-Jakarta Commons Digester


sailorhero edited on 2004-06-30 22:00


flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2018 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号
客服电话 0592-8750026    客服信箱 714923@qq.com    客服QQ 714923