java中解析XML文档实现

1.生成application.xml文件(CategoryDao,UserDao,UserService是不同的java类,class后面是这些类的路径)

<?xml version="1.0" encoding="UTF-8"?>
<beans>  
    <bean id="CategoryDao" class="cn.itcast.store.dao.daoImp.CategoryDaoImp"/>  
    <bean id="UserDao" class="cn.itcast.store.dao.daoImp.UserDaoImp"/>  
    <bean id="UserService" class="cn.itcast.store.service.serviceImp.UserServiceImp"/>
</beans>

2.解析xml文件

public class BeanFactory {
	public static Object createObject(String name){
		try {
			//获取到read对象
			SAXReader read=new SAXReader();
			//通过read获取到一个Document对象,代表这个文档application.xml
			Document doc = read.read(BeanFactory.class.getClassLoader().getResourceAsStream("application.xml"));
			//通过doc获取到根节点
			Element root=doc.getRootElement();
			//获取根节点下所有的子节点
			List<Element> list=root.elements();
			//遍历根节点下所有的子节点
			for(Element ele:list){
				//获取到根节点下属性名为id值
				String id=ele.attributeValue("id");
				if(name.equals(id)){
					//获取到当前节点下的class属性值
					String str=ele.attributeValue("class");
					//将str中存放的全路径代表的字节码文件加载到内存
					Class clazz=Class.forName(str);
					return clazz.newInstance();
				}
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}
	
	public static void main(String[] args) {
		try {
			CategoryDao c=(CategoryDao)BeanFactory.createObject("CategoryDao");
			List<Category> allCats = c.findAllCats();
			for(Category cc:allCats){
				System.out.println(cc);
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值