利用simpleframework解析xml

1.按照xml编写对应的bean文件

类似于树的先根遍历,从最深一层的元素开始创建对应的bean类,用@Element标识元素,@Attribute标识元素属性。除root元素、最深一层元素,其他层元素对应的bean类都需将其子元素的bean作为属性引入。对于下面的xml文档:

<configManager>
   <testEnvCofig>
      <fullfilSystem username="auto-test" userpassword="auto1nthebox">
         <url>http://172.16.0.160:8080/v3center/login1.jsp</url>
         <databasename>products_center_v1</databasename>
      </fullfilSystem>
      <procurementSystem username="auto-test" userpassword="auto1nthebox">
         <url>http://172.16.0.161:8080/v3center/login1.jsp</url>
         <databasename>products_center_v1</databasename>
      </procurementSystem>
      <wmsSystem username="zhangfei" userpassword="wms">
         <url>http://172.16.0.162:8080/login_input.do</url>
         <databasename>wms</databasename>
      </wmsSystem>
      <dblocation>172.16.0.166</dblocation>
      <dbusername>db_admin</dbusername>
      <dbpassword>light2902</dbpassword>
   </testEnvCofig>
</configManager>

对应的bean文件依次为

public class BeanSystem {
	@Element
	private String url;
	@Element
	private String databasename;
	@Attribute
	private String username;
	@Attribute
	private String userpassword;

	//getter and setter
}

package com.litb.bida.test.xmlSerializer;

import org.simpleframework.xml.Element;

public class BeanEnvironment {
	@Element
	private BeanSystem fullfilSystem;
	@Element
	private BeanSystem procurementSystem;
	@Element
	private BeanSystem wmsSystem;
	@Element
	private String dblocation;
	@Element
	private String dbusername;
	@Element
	private String dbpassword;
	
//getter and setter

}

public class BeanCfg {
	@Element
	private BeanEnvironment testEnvCofig;

//getter and setter	

}


需要注意的时Bean类的属性值名称必须与xml文档中的元素及属性值一致。


2.读取xml内容

File file = new File("testconfig.xml");
BeanCfg cfg = new BeanCfg();
Serializer ser = new Persister();
ser.read(cfg,file);

即可从cfg开始获取各个层级的元素及属性

对于格式比较简单,起没有重复元素的xml,可以采用simpleframework来解析,对于文件比较大,且重复内容过的的,由于编写对应的bean文件比较耗时,则不太合适这种方法。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值