标题: Jakarta Commons Digester 学习笔记 [打印本页] 作者: xpjjy 时间: 2009-03-20 15:40 标题: Jakarta Commons Digester 学习笔记 在windows下开发程序,用M$提供的接口处理.ini文件或管理 注册表
的键值是非常方便的。在java平台上开发程序,则习惯于以xml格式的文件来存放系统的配置信息,对这种文件的解析和处理,可以用sax或dom。有没有更简便的方法呢?有,就是用digester模块。
Digester是Jakarta 子项目Commons下的一个模块,支持基于规则的对任意 XML
文档的处理。它最初是Structs项目的一部分,后因其通用性而划归Commons.
下载及编译
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
password: anoncvs
cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout jakarta-commons/digester
cd jakarta-commons/digester
ant dist
Digester的运行依赖下列包:
一个遵循Jaxp(1.1版本及以后)的XML解析器
Jakarta commons beanutils包(1.5版本及以后)
Jakarta commons collections包(2.1版本及以后)
Jakarta commons logging包(1.0.2版本及以后)
一个简单的例子
假定有两个 Java
Bean如下,分别为Foo和Bar
package mypackage;
public class Foo {
public void addBar(Bar bar);
public Bar findBar(int id);
public Iterator getBars();
public String getName();
public void setName(String name);
}
public mypackage;
public class Bar {
public int getId();
public void setId(int id);
public String getTitle();
public void setTitle(String title);
}
用下面的xml文件进行配置
SetPropertyRule,当begin()方法被调用时,digester调用栈顶对象的一个特定的属性设置方法(property setter)并传给它特定的值(property和值分别由两个attribute命名)。这对 XML
需要遵循一个指定的DTD时比较有用,你可以设置一个特别的属性(property),虽然在指定DTD没有attribute与其相对应。