SAXReader解析xml文档


title: SAXReader解析xml文档

date: 2017-11-13 22:26:17

tags: xml

categories: xml


解析前准备

导入dom4j-full.jar包
dom4j是一个类似于jdom的java xml API,用来读写XML文件。

举例:

bean.xml内容

编写一个名为 bean.xml 的xml文件。


	<?xml version="1.0" encoding="UTF-8"?>
	
	<beans>
		<bean id="Student" name="com.pojo.Student" ></bean>
	</beans>

解析

假设有一个Student类在com.pojo 包下。
getInstance(String id)方法:根据传递过来的id解析xml文件找到对应的标签,再获取该标签中name属性的值(com.pojo.Student 一个类的全类名),通过反射得到Student类,返回它。

	
	package com.spring;
	
	import java.io.FileInputStream;
	import java.io.FileNotFoundException;
	
	import org.dom4j.Document;
	import org.dom4j.DocumentException;
	import org.dom4j.Element;
	import org.dom4j.io.SAXReader;
	
	public class ApplicationContext {
	
		public static Object getInstance(String id) throws FileNotFoundException,
				DocumentException, ClassNotFoundException, InstantiationException,
				IllegalAccessException {
			//  解析自己写的bean.xml
			SAXReader reader = new SAXReader();
			//  读取xml文件
			Document document = reader.read(new FileInputStream("src/bean.xml"));
			//  根据id得到 bean标签 元素
			Element element = (Element) document.selectSingleNode("beans/bean[@id='"
					+ id + "']");
	
			//  根据元素去属性值 -- 是一个类的全类名
			String name = element.attributeValue("name");
			//  反射到对应的类
			Class c = Class.forName(name);
			//  返回这个类的一个示例   新new的
			return c.newInstance();
	
		}
	
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值