java digester_使用digester解析XML配置文件

解析文档的模型比较常用的有sax、dom、jdom、dom4j四种模型:

sax是从上到下逐步读取,遍读边产生事件(解析),只读一次哈;

由于这个特性呢,决定了这种读取方式不能随机访问,不能修改文件,

这种模型最大的优点就是对于大型文件不会显得麻烦。

如果我们想修改文件,或者随机访问呢;就得用到DOM模型了。

DOM模型是先将XML文档全部读取到内存中,再解析。

这种特性决定了,它解析文件占用大量内存,不能解析大型文件。

jdom和dom4j则是面向java语言的,

这两种解析模型的功能都是很强大的

今天就介绍点简单的解析方式:sax下的digester方式解析

首先需要导几个包哈:digester.beanutils, collections, commens-logging

然后创建张XML文档

encoding="UTF-8"?>

业务查询配置文件

MySelfCCB

com.lovo.lis.business.bean.CCB

MySelfICBC

com.lovo.lis.business.bean.ICBC

MySelfCCB

/CCB

MySelfICBC

/ICBC

在这我建了与之对应的3个JAVABean:WebApp , BusinessServlet ,

ServletMapping

//得到一个Digester对象

Digester

digester = new Digester();

//忽略验证

digester.setValidating(false);

//根据web-app节点创建一个WebApp类

digester.addObjectCreate("web-app",

WebApp.class);

//设置它的属性为web-app/description节点的文本内容

digester.addBeanPropertySetter("web-app/description");

//根据web-app/servlet节点创建一个BusinessServlet类

digester.addObjectCreate("web-app/servlet",BusinessServlet.class);

//设置它的属性servletName值为web-app/servlet/servlet-name节点的文本内容

digester.addBeanPropertySetter("web-app/servlet/servlet-name","servletName");

//设置它的属性servletClass值为web-app/servlet/servlet-class节点的文本内容

digester.addBeanPropertySetter("web-app/servlet/servlet-class","servletClass");

//调用WebApp下的addBusinessServlet()方法

//传一个web-app/servle节点对象为参数

digester.addSetNext("web-app/servlet","addBusinessServlet");

//根据web-app/servlet-mapping节点创建一个ServletMapping类

digester.addObjectCreate("web-app/servlet-mapping",ServletMapping.class);

//设置它的属性urlPattern值为web-app/servlet-mapping/url-pattern节点的文本内容

digester.addBeanPropertySetter("web-app/servlet-mapping/url-pattern","urlPattern");

//设置它的属性servletName值为web-app/servlet-mapping/servletName节点的文本内容

digester.addBeanPropertySetter("web-app/servlet-mapping/servlet-name","servletName");

//调用WebApp下的addServletMapping()方法

//传一个web-app/servlet-mapping节点对象为参数

digester.addSetNext("web-app/servlet-mapping","addServletMapping");

这基本上就是它比较常用到的一些方法了哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值