前言
dom4j是一个java的XML api,性能优异、功能强大、易于使用。以前听说过来解析xml文件的几种标准方式;但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4j解析xml的具体操作。下面话不多说了,来一起看看详细的介绍吧
注意:使用Dom4j开发,需下载dom4j相应的jar文件
题目:后台利用dom4j解析student.xml文件,并返回List集合
需要解析的XML:
user1
user2
user3
user4
user5
user6
user7
user8
user9
user10
user12
user13
user14
user15
user16
java解析xml代码:
/**
* @author hh
*/
public class XmlUtil {
/**
* 读取xml学生列表信息
* @return
*/
public List listStudent(){
//创建SAXReader对象
SAXReader reader=new SAXReader();
Document document = null;
try {
//通过read方法读取一个文件 转换成Document对象
document = reader.read(new File("/Users/mac/Documents/students.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
//获取根节点元素对象
Element node = document.getRootElement();
return elementMethod(node);
}
/**
* 获取节点中的信息
* @param node
* @return
*/
private List elementMethod(Element node){
List list = new ArrayList();
//获取所有class 节点
List elementClass = node.elements("class");
for (Element aClass : elementClass) {
//获取所有student节点
List elelmentStu=aClass.elements("student");
for (Element element : elelmentStu) {
//创建学生对象
Student stu = new Student();
//class节点里name的值
stu.setSclazz(aClass.attribute("name").getValue());
//student节点里ID的值
stu.setSid(element.attribute("id").getValue());
//student节点里的String值
stu.setSname(element.getStringValue());
list.add(stu);
}
}
return list;
}
}
实体类:
/**
* @author hh
*/
public class Student {
private String sname;
private String sid;
private String sclazz;
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getSclazz() {
return sclazz;
}
public void setSclazz(String sclazz) {
this.sclazz = sclazz;
}
@Override
public String toString() {
return "Student{" +
"sname='" + sname + '\'' +
", sid='" + sid + '\'' +
", sclazz='" + sclazz + '\'' +
'}';
}
}
@Test 代码:
public class StudentDaoTest {
@Test
public void testlistStudent(){
List list = new XmlUtil().listStudent();
for (Student student : list) {
System.out.println(student);
}
}
}
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。