您的位置:首页 > 其它

dom4j解析xml文档(-)

2015-01-29 17:48 183 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: