进行读取的UTIL类SmilConfigUtil.javapackage config ;
import java.io.File ;import org.apache.commons.digester.Digester ;
import org.apache.commons.digester.xmlrules.DigesterLoader ;
public class SmilConfigUtil { public SmilConfig readRule(String dataFileName) {
SmilConfig config = null;
try {
Digester digester = new Digester() ;
digester.setValidating(false) ;
digester.addObjectCreate("smils", config.SmilConfig.class) ;
digester.addBeanPropertySetter("smils/url", "url") ;
digester.addObjectCreate("smils/smil", config.Smil.class) ;
digester.addSetNext("smils/smil", "addSmil") ;
digester.addBeanPropertySetter("smils/smil/template", "template") ;
digester.addBeanPropertySetter("smils/smil/name", "name") ;
digester.addBeanPropertySetter("smils/smil/info", "info") ;
digester.addObjectCreate("smils/smil/file", config.FileSrc.class) ;
digester.addSetNext("smils/smil/file", "addFileSrc") ;
digester.addBeanPropertySetter("smils/smil/file/name", "name") ;
digester.addBeanPropertySetter("smils/smil/file/src", "src") ;
File input = new File(dataFileName) ;
config = (SmilConfig) digester.parse(input) ;
}
catch (Exception exc) {
exc.printStackTrace() ;
}
return config;
} public SmilConfig readRule( String dataFileName,String ruleFileName) {
SmilConfig config = null;
try {
File input = new File( dataFileName );
File rules = new File( ruleFileName );
System.out.println(rules.toURL());
System.out.println(input.toURL());
Digester digester = DigesterLoader.createDigester( rules.toURL() );
config = (SmilConfig)digester.parse( input);
} catch( Exception exc ) {
exc.printStackTrace();
}
return config;
} public static void main(String args[]){
SmilConfigUtil configUtil = new SmilConfigUtil();
SmilConfig config = null;
config = configUtil.readRule("src\\config\\SmilConfig.xml");
config = configUtil.readRule("src\\config\\SmilConfig.xml","src\\config\\RuleConfig.xml");
System.out.println(config.toString());
}}现在的问题是:如果采用config = configUtil.readRule("src\\config\\SmilConfig.xml");进行解析,会得到正确的结果.
即: ********* Smil config content begin *************
## url:/WEB-INF/smils/
####### 内容如下:
##############[1]
## smil[1]:3
## name :smil3.smil
## info :cccccccccc
## size :2
## File[3]:3=300.jpg
## File[33]:33=3300.jpg
##############[2]
## smil[2]:2
## name :smil2.smil
## info :bbbbbbbbbb
## size :1
## File[2]:2=200.jpg
##############[3]
## smil[3]:1
## name :smil1.smil
## info :aaaaaaaaa
## size :1
## File[1]:1=100.jpg
********* Smil config content over *************
而如果采用rule配置文件进行解析,却得不到FileSrc的信息,即内容如下:
********* Smil config content begin *************
## url:/WEB-INF/smils/
####### 内容如下:
##############[1]
## smil[1]:3
## name :smil3.smil
## info :cccccccccc
## size :0
##############[2]
## smil[2]:2
## name :smil2.smil
## info :bbbbbbbbbb
## size :0
##############[3]
## smil[3]:1
## name :smil1.smil
## info :aaaaaaaaa
## size :0
********* Smil config content over *************
现在请大家帮我分析一下,在RuleConfig.xml文件的配置中,那里有错误....
还请教有关配置文件的说明....谢谢大家.....
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货