dom4j读取xml文件

时间:2022-05-21 12:06:04

1、引入相关的jar文件

 

将dom4j相关的jar拷贝到WEB-INF/lib下

  • dom4j-1.6.1.jar:核心jar

  • jaxen-1.1-beta-6.jar:不会抛java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常

2、读取xml文件到控制台

 

xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<students><!--顶层节点-->
<student>
<学生姓名>学生1</学生姓名>
<性别>男</性别>
<年龄>10</年龄>
</student>
<student>
<学生姓名>学生2</学生姓名>
<性别>女</性别>
<年龄>10</年龄>
</student>
</students>

 

java读取代码如下

package com.test.test;

import java.io.File;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlConfigReader {

/**
* 读取xml_file.xml的配置
* @param args
*/

//读取xml文件到Document
public Document read(String fileName) throws MalformedURLException, DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(new File(fileName));
return document;
}

//获取xml的根节点(xml是从根节点开始的)
public Element getRootElement(Document doc){
return doc.getRootElement();
}

//遍历读取xml的数据
public void Traversing(Element root) {

for ( Iterator i = root.elementIterator("student"); i.hasNext(); ) {//这里不是从根节点开始的,而是根节点下的第一个节点
Element element = (Element) i.next();

// do something

System.out.println(element.elementText("学生姓名"));
System.out.println(element.elementText("性别"));
System.out.println(element.elementText("年龄"));
}

}

public static void main(String[] args) {
String path = "E:\\xml_file.xml";
try {

XmlConfigReader xcr = new XmlConfigReader();
Document doc = xcr.read(path);//根据路径path读入xml文件
Element root = xcr.getRootElement(doc);//获得根节点;

xcr.Traversing(root);//遍历读取xml的数据

} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


}

3、控制台的输出结果


学生1

10
学生2

10