将下面的xml转换成RequireConfig对象:
<reqConfig id="req20120413000048">
<alipay>
<appName to="/home/admin/copywriter">cmscenter</appName>
<appName to="/home/admin/copywriter">ecmng</appName>
<appName to="/home/admin/copywriter">devcenter</appName>
<appName to="/home/admin/copywriter">zpublish</appName>
</alipay>
<appName to="/home/admin/copywriter">zpublish</appName>
</reqConfig>
RequireConfig对象:
/**
* created since 2012-4-11
*/
package com.alipay.ecmng.biz.shared.model;
import java.util.ArrayList;
import java.util.List;
/**
* @author wb-gaoy
* @version $Id: RequireConfig.java,v 0.1 2012-4-11 下午7:41:12 wb-gaoy Exp $
*/
public class RequireConfig {
private String reqId;
private AlipayClusterInfo alipayCluster;
private List<RequireApplication> requireApps = new ArrayList<RequireApplication>();
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public List<RequireApplication> getRequireApps() {
return requireApps;
}
public void setRequireApps(List<RequireApplication> requireApps) {
this.requireApps = requireApps;
}
public void addReqApp(RequireApplication reqApp) {
requireApps.add(reqApp);
}
public AlipayClusterInfo getAlipayCluster() {
return alipayCluster;
}
public void setAlipayCluster(AlipayClusterInfo alipayCluster) {
this.alipayCluster = alipayCluster;
}
}
AlipayClusterInfo对象:
/**
* created since 2012-4-16
*/
package com.alipay.ecmng.biz.shared.model;
import java.util.ArrayList;
import java.util.List;
/**
* @author wb-gaoy
* @version $Id: AlipayClusterInfo.java,v 0.1 2012-4-16 下午8:48:31 wb-gaoy Exp $
*/
public class AlipayClusterInfo {
private List<RequireApplication> requireApps = new ArrayList<RequireApplication>();
public List<RequireApplication> getRequireApps() {
return requireApps;
}
public void setRequireApps(List<RequireApplication> requireApps) {
this.requireApps = requireApps;
}
public void addReqApp(RequireApplication reqApp) {
requireApps.add(reqApp);
}
}
RequireApplication对象:
/**
* created since 2012-4-11
*/
package com.alipay.ecmng.biz.shared.model;
/**
* @author wb-gaoy
* @version $Id: RequireApplication.java,v 0.1 2012-4-11 下午7:47:49 wb-gaoy Exp $
*/
public class RequireApplication {
private String name;
private String targetDir;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTargetDir() {
return targetDir;
}
public void setTargetDir(String targetDir) {
this.targetDir = targetDir;
}
}
将xml解析成对象的主要方法:
public RequireConfig readReqConfigFile(File reqConfigFile) {
if (!reqConfigFile.exists())
return null;
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("reqConfig", RequireConfig.class);
digester.addSetProperties("reqConfig", "id", "reqId");
digester.addObjectCreate("reqConfig/alipay", AlipayClusterInfo.class);
digester.addObjectCreate("reqConfig/alipay/appName", RequireApplication.class);
digester.addCallMethod("reqConfig/alipay/appName", "setName", 0);
digester.addSetProperties("reqConfig/alipay/appName", "to", "targetDir");
digester.addSetNext("reqConfig/alipay/appName", "addReqApp",
"com.alipay.ecmng.biz.shared.model.RequireApplication");
digester.addSetNext("reqConfig/alipay", "setAlipayCluster");
digester.addObjectCreate("reqConfig/appName", RequireApplication.class);
digester.addCallMethod("reqConfig/appName", "setName", 0);
digester.addSetProperties("reqConfig/appName", "to", "targetDir");
digester.addSetNext("reqConfig/appName", "addReqApp",
"com.alipay.ecmng.biz.shared.model.RequireApplication");
try {
return (RequireConfig) digester.parse(reqConfigFile);
} catch (IOException e) {
errorMessage.set(e.getMessage());
} catch (SAXException e) {
errorMessage.set(e.getMessage());
}
}
O!!
分享到:
相关推荐
赠送jar包:commons-digester3-3.2.jar; 赠送原API文档:commons-digester3-3.2-javadoc.jar; 赠送源代码:commons-digester3-3.2-sources.jar; 赠送Maven依赖信息文件:commons-digester3-3.2.pom; 包含翻译后...
`commons-digester-2.1.jar` 是Apache Commons项目中的一个组件,主要负责XML文档的解析和对象的创建与绑定。Apache Commons Digester库提供了一种规则驱动的方法来解析XML文档,并根据预定义的规则将XML数据映射到...
`commons-digester.jar`是Apache Commons项目中的一个组件,主要功能是解析XML文档并根据预定义的规则自动创建和填充Java对象。这个组件在Java应用程序中尤其有用,特别是那些需要从XML配置文件中构建复杂对象层次...
Digester是Apache软件基金会的Jakarta项目中的一个实用工具库,它主要用来解析XML文档,并根据预定义的规则自动创建和配置Java对象。这个工具在处理XML到Java对象映射时,极大地简化了代码,避免了手动解析XML的繁琐...
Digester是Apache软件基金会下的Jakarta项目中的一个Java库,主要用于简化XML到Java对象的映射过程。在处理XML文档时,它通过匹配XML元素结构到相应的Java对象的方法调用,实现了XML解析的自动化。这个工具对于那些...
Castor和Digester是两个在Java开发中用于对象与XML数据之间进行映射的库,它们简化了XML数据的解析和对象的序列化过程。在本文中,我们将深入探讨这两个库,以及如何通过实例来使用它们。 首先,让我们了解Castor。...
标题“利用commons-digester解析XML”涉及到的是Java开发中的一种处理XML文档的工具——Apache Commons Digester。这个库提供了一种方便的方式来映射XML文档结构到Java对象,从而简化了XML数据的处理过程。 Apache ...
Java中的Digester库是Apache Commons项目的一部分,它提供了一种方便的方式来解析XML文档,并将解析结果映射到Java对象模型上。这个库特别适合于创建简单的XML到Java对象的映射,而不需要编写大量的手动解析代码。在...
《digester深度解析》 Java世界中,XML作为数据交换和配置文件的常用格式,其解析和对象绑定是一项常见的任务。Apache Commons Digester是Apache软件基金会提供的一个强大的工具,专门用于将XML文档解析为Java对象...
赠送jar包:commons-digester3-3.2.jar; 赠送原API文档:commons-digester3-3.2-javadoc.jar; 赠送源代码:commons-digester3-3.2-sources.jar; 赠送Maven依赖信息文件:commons-digester3-3.2.pom; 包含翻译后...
在Java开发中,Apache Commons Digester是一个非常有用的库,它允许开发者通过XML配置来实例化、配置和关联Java对象。 Digester提供了两种主要的解析方式,即规则硬编码和独立的规则文件,这两种方法各有其特点和...
《使用Digester解析XML的深度指南》 在Java开发中,处理XML文件是常见的任务,而Apache Commons Digester库提供了一种高效且便捷的方式来解析XML并将其映射到Java对象。本教程将深入探讨如何使用Digester来读取XML...
### Digester组件简化XML文件处理操作 #### 一、引言 随着Web技术的发展,XML作为数据交换格式的重要性日益凸显。然而,对于大型且复杂的XML文档进行解析与处理时,传统的方法如DOM(Document Object Model)和SAX...
本文将深入探讨如何使用Apache的 Digester 库来解析XML文档,这是一款强大的工具,能够将XML数据映射到Java对象,简化了处理XML的过程。 Digester 是Apache Commons项目的一部分,它提供了一种规则驱动的方法来处理...
在Java开发中,Struts框架提供了一个强大的工具——Digester,用于解析XML文件并自动创建、配置Java对象。本文将详细介绍如何使用Digester处理具有嵌套结构的XML文档,并通过一个具体的实例——"DigesterXmlTest"来...
Digester 是 Apache Commons 中的一个工具类库,它用于解析 XML 文档,并根据预先定义的规则自动创建和配置 Java 对象。在上述问题中,我们看到一个 XML 文档表示了一个考试,其中包含了多个题目,每个题目有其编号...
### 使用Apache Commons Digester开发指南 #### 概述 Apache Commons Digester 是一款基于 Java 的开源库,专门用于简化 XML 文件解析的过程。它利用 SAX(Simple API for XML)解析器来解析 XML 数据,并通过一...
《digester3.2源码解析与应用实例》 Apache Digester是一个强大的Java库,用于在XML文档和Java对象之间建立映射关系,通过规则来自动解析XML并创建或更新对象结构。在digester3.2版本中,我们能够深入理解其内部...
Apache Commons Digester是Java中一个强大的工具,它提供了方便的方式来解析XML文档,并将解析出的数据绑定到Java对象上,实现对象的自动创建和初始化。本示例将详细介绍如何使用Apache Commons Digester进行XML解析...
Digester不是一个XML Parser,它只是对SAX更高层次上的一个封装使用Digester,将XML映射成javaBean. 我们无须了解SAX和DOM的解析过程,只要给Digester添加一些解析规则,就能对一个xml文件进行解析。Digester使用...