dom4j解析xml文档(-)

java解析xml文档的开源工具有很多,本文主要使用dom4j解析xml文档,是一个入门示例。

1.maven依赖

<dependency>
  		<groupId>dom4j</groupId>
		<artifactId>dom4j</artifactId>
		<version>1.6.1</version>
  	</dependency>
  	<dependency>
  		<groupId>jaxen</groupId>
		<artifactId>jaxen</artifactId>
		<version>1.1.1</version>
  	</dependency>
2.xml示例文件
<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<bean id="bean1" class="cn.edu.hbut.zw.dom4j.class1"></bean>
	<bean id="bean2" class="cn.edu.hbut.zw.dom4j.class2"></bean>
	<bean id="bean3" class="cn.edu.hbut.zw.dom4j.class3"></bean>
	<bean id="bean4"></bean>
	<bean id="bean5" class="cn.edu.hbut.zw.dom4j.class5"></bean>
	<bean id="bean6" class="cn.edu.hbut.zw.dom4j.class6"></bean>
	<bean id="bean7" class="cn.edu.hbut.zw.dom4j.class7"></bean>
	<bean class="cn.edu.hbut.zw.dom4j.class8"></bean>
</beans>
3.解析xml文件

public class Dom4jUtil {
	
	Map<String,String> beans = new HashMap<String,String>();
	
	//根据路径获取document对象
	public Document parse(String xmlPath) throws DocumentException{
		SAXReader reader = new SAXReader();
		Document document = reader.read(new File(xmlPath));
		return document;
	}
	
	@SuppressWarnings("unchecked")
	public Map<String,String> parseXml(Document document){
		Map<String,String> beans = new HashMap<String,String>();
		if(document==null){
			return null;
		}
		//获取根元素beans
		Element ele = document.getRootElement();
		//使用xpath表达式查找节点,此时表示查找的是有id和class属性的bean
		List<Element> elements = ele.selectNodes("//beans/bean[@id and @class]");
		for(Element element:elements){
			System.out.println(element.attributeValue("id")+"----"+element.attributeValue("class"));
			beans.put(element.attributeValue("id"), element.attributeValue("class"));
		}
		return beans;
	}
	
	public static void main(String[] args) {
		Dom4jUtil util = new Dom4jUtil();
		//根据类加载器获取xml文件路径
		String xmlPath = Dom4jUtil.class.getClassLoader().getResource("applicationContext.xml").getPath();try {
			Document document = util.parse(xmlPath);
			util.parseXml(document);
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
	
}

4.运行main方法,结果如下
bean1----cn.edu.hbut.zw.dom4j.class1
bean2----cn.edu.hbut.zw.dom4j.class2
bean3----cn.edu.hbut.zw.dom4j.class3
bean5----cn.edu.hbut.zw.dom4j.class5
bean6----cn.edu.hbut.zw.dom4j.class6
bean7----cn.edu.hbut.zw.dom4j.class7



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值