xml
现在很多软件使用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