`

Digester解析xml到bean

阅读更多
参考网站:http://www.blogjava.net/alex/archive/2006/09/06/68148.html
模拟tomcat中XML文件的解析:
文件夹名为:lis
package com.yidu.lis.bean;

import java.io.File;

import org.apache.commons.digester.Digester;

import com.yidu.lis.vo.DBServerVo;

/**
* CopyRight(C),2011-2012,一度教育
* FileName:com.yidu.lis.bean.WebAppConfigManager.java
* <p>
* <B>贷款计息查询服务器系统</B>
* </p>
*
* @author student
* @Date Apr 26, 20112011-4-19 上午12:23:57 PM
* @Description 属性文件的配置管理
* @version 1.00 类创建者:肖祺
* @see 参考类
*/
public class WebAppConfigManager {
private final static String cfgFile = System.getProperty("user.dir")
+ java.io.File.separator + "xml\\bank.xml";
private WebApp webApp = null;
private static WebAppConfigManager wcm = null;

private WebAppConfigManager() throws Exception {
parseWebXMLUseDigester();
}

public static WebAppConfigManager getWcm() throws Exception {
if (wcm==null) {
wcm = new WebAppConfigManager();
}
return wcm;
}

public WebApp getWebApp() {
return webApp;
}

void parseWebXMLUseJDOM() throws Exception {

}

/**
* 用Digester进行解析
*
* @throws Exception
*/
void parseWebXMLUseDigester() throws Exception {
//创建解析文件对象
Digester digester = new Digester();
digester.setValidating(false);
//创建根节点
digester.addObjectCreate("web-app", WebApp.class);
digester.addBeanPropertySetter("web-app/description", "description");
//创建Servlet节点
digester.addObjectCreate("web-app/servlet", BusinessServlet.class);
digester.addBeanPropertySetter("web-app/servlet/servlet-name","servletName");
digester.addBeanPropertySetter("web-app/servlet/servlet-class","servletClass");
digester.addSetNext("web-app/servlet", "addBusinessServlet");
//创建InitParam节点
digester.addObjectCreate("web-app/servlet/init-param",InitParam.class);
   digester.addBeanPropertySetter("web-app/servlet/init-param/param-name","paramName");
   digester.addBeanPropertySetter("web-app/servlet/init-param/param-value","paramValue");
        digester.addSetNext("web-app/servlet/init-param","addInitParam");
   //创建servlet-mapping节点
digester.addObjectCreate("web-app/servlet-mapping",ServletMapping.class);
digester.addBeanPropertySetter("web-app/servlet-mapping/servlet-name","servletName");
digester.addBeanPropertySetter("web-app/servlet-mapping/url-pattern","urlPattern");
digester.addSetNext("web-app/servlet-mapping", "addServletMapping");
File file = new File(cfgFile);
//创建数据库节点
digester.addObjectCreate("web-app/resource",DBServerVo.class);
digester.addSetProperties("web-app/resource", "name","name");
                digester.addSetProperties("web-app/resource", "maxActive","maxActive");
                digester.addSetProperties("web-app/resource", "maxIdle","maxIdle");
                digester.addSetProperties("web-app/resource", "maxWait","maxWait");
                digester.addSetProperties("web-app/resource", "userName","userName");
                digester.addSetProperties("web-app/resource", "passWord","passWord");
                digester.addSetProperties("web-app/resource", "driverClassName","driverClassName");
                digester.addSetProperties("web-app/resource", "url","url");
digester.addSetNext("web-app/resource", "addConfigDataSource");
webApp = (WebApp) digester.parse(file);
}

}
分享到:
评论

相关推荐

    digester 解析xml

    **使用Digester解析XML并验证** 1. **设置 Digester 规则** 在使用Digester之前,我们需要定义一系列规则,告诉Digester在遇到XML文档的哪些元素时执行什么操作。这些规则通常涉及到创建新对象、设置对象属性或者...

    利用digester来将xml转换为bean

    Digester通过解析XML文档并根据预定义的规则,将XML元素映射到Java Bean的属性,实现数据的自动绑定。 使用Digester的步骤大致如下: 1. **引入依赖**:首先,我们需要在项目中引入Apache Commons Digester的依赖...

    利用Digester把XML转换成为Java对象

    4. **解析XML文件**:最后,通过调用`digester.parse()`方法来解析XML文件,并将解析结果填充到Java对象中。 #### 示例代码 以下是一个简化的`deregister`方法示例,展示了如何使用Digester从XML文件中读取图表...

    digester包

    使用digester解析XML时,我们需要遵循以下步骤: 1. **初始化Digester**:创建一个Digester实例,并设置必要的属性,如命名空间处理、错误处理等。 2. **定义Rule**:创建Rule对象,这些对象定义了当XML文档中的...

    xml解析在java中的应用小程序

    DOM解析器会将整个XML文档加载到内存中,形成一个树形结构,便于遍历和操作。这种方式适合小规模的XML文档,但对大文件可能会消耗大量内存。SAX解析器则采用事件驱动模型,只在遇到XML元素时触发相应事件,按需处理...

    Apache xml转换java对象 Digester

    // 解析XML文件 digester.parse("data.xml"); } } ``` 通过以上步骤,我们成功地将XML数据转换为了Java对象,并实现了规则集的外部化管理。 #### 四、总结 通过本篇文章的介绍,我们了解了如何使用`Apache ...

    digester 实例

    - `EISMessage.java`, `NetworkCard.java`, `OperatingSystem.java`, `LogicalDrive.java`可能是用户自定义的Java类,它们可能是被digester解析的XML配置文件所创建和配置的对象。 在实际应用中,`digester`通常会...

    浅析Digester

    在Java开发中,我们经常需要处理XML文件,解析XML并将其内容映射到相应的Java对象上。这时,Apache Commons Digester库就派上了用场。本文将深入探讨Digester的功能、工作原理以及如何在实际项目中应用。 **一、...

    digester(浅谈第一次使用)

    标题中的“digester”指的是Apache Commons Digester,它是一个Java库,主要用于解析XML文档并根据预定义的规则创建和配置Java对象。这个工具在处理XML到Java对象映射时非常有用,尤其在需要大量重复性操作的情况下...

    commons-digester.jar下载

    1. **配置文件解析**: Commons-Digester常用于解析XML配置文件,如Spring框架中的bean配置或Struts框架的配置。 2. **XML数据绑定**: 将XML数据映射到Java对象,简化数据处理。 3. **Web应用程序**: 在构建MVC...

    digester jar包大全

    当解析XML时, Digester会自动调用相应的Java方法,从而简化了原本繁琐的手动解析过程。这一特性使得Digester尤其适用于构建配置驱动的应用程序,如Web应用、服务器插件等。 首先,我们需要理解Digester的工作原理...

    commons-digester-2.0-bin

    在实际应用中,Commons Digester常用于配置文件的解析,例如在Spring框架中,它被用来解析XML配置文件,创建和配置bean。此外,它也适用于任何需要根据XML结构动态生成和操作Java对象的场景。 总的来说,Commons ...

    aspectjrt、aspectjweaver、commons-beanutils、commons-digester

    使用Digester可以减少手动解析XML的繁琐工作,使代码更加简洁和可维护。 这些库在Java开发中的应用广泛,例如在企业级应用开发中,AspectJ可以用于日志记录、性能监控和事务管理等,而Commons BeanUtils和Commons ...

    java xml realworld problem

    - Apache Commons Digester简化了基于规则的XML解析。 总之,Java与XML的结合在实际开发中扮演着重要角色,从数据交换、配置管理到网络通信,XML都是不可或缺的一部分。理解并熟练运用各种XML处理技术,能有效提升...

    xml与javabean的相互转换

    4. XMLBeans库:压缩包中的"xmlbean"可能指的是Apache的XMLBeans项目,这是一个强大的库,能够直接将XML Schema编译成Java类,这些类可以直接用来序列化和反序列化XML。XMLBeans通过使用Schema信息来生成高度优化的...

    xbean,xmlpublic,xml-apis等jar

    XBean通过Apache Commons Digester和Xerces来解析XML配置文件,并将其转换为Java对象。这个框架主要用于简化复杂配置文件的处理,尤其是在Spring框架中,XBean可以作为一个扩展,帮助处理XML配置文件。它支持动态...

    java_xml_api.rar_xml文档分析

    此外,Apache的 Commons Digester 和 JiBX 等库也提供了高级的XML解析功能。 总的来说,XML在Java开发中扮演着配置中心的角色,通过XML配置文件可以灵活地调整应用程序的行为。理解并熟练运用Java的XML API进行文档...

    Websiteconfig

    - **commons-digester-2.1.jar**:Apache Commons Digester是一个处理XML文档的工具,通过定义规则链,可以在解析XML时自动创建和配置Java对象,非常适合于从XML配置文件中构建对象模型。 - **commons-logging-...

    commons jar包

    这在处理XML配置文件时特别有用,可以避免手动解析XML并构建相应的Java对象。开发者可以定义一系列匹配模式,当解析到特定的XML结构时,Digester会执行相应的Java方法或创建新的对象。这种映射规则可以极大地减少...

Global site tag (gtag.js) - Google Analytics