将解析的xml文件内容,存放到对象中,利用dom4j解析xml文件

建立Employee类,属性包含上面表格的列。 并将上题中的表格对应的XML数据进行解析,通过反射机制在程序中创建代表3行数据的3个Employee对象。

xmL文件

<?xml version="1.0" encoding="UTF-8"?>
<employees>
     <employee id="1001">
          <name>小邪</name>
          <age>25</age>
          <salary>20000</salary>
          <job>Java高级工程师</job>
     </employee>
     <employee id="1002">
          <name>小小杰</name>
          <age>18</age>
          <salary>10000</salary>
          <job>Java中级工程师</job>
     </employee>
     <employee id="1003">
          <name>小杰</name>
          <age>15</age>
          <salary>8000</salary>
          <job>Java初级工程师</job>
     </employee>
</employees>

employee类:

package cn.sxt.work10;

public class Employee {
	private String name;
	private int age;
	private long salary;
	private String job;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public long getSalary() {
		return salary;
	}

	public void setSalary(long salary) {
		this.salary = salary;
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}

	public Employee(String name, int age, long salary, String job) {
		super();
		this.name = name;
		this.age = age;
		this.salary = salary;
		this.job = job;
	}

	public Employee() {
		super();
	}

	@Override
	public String toString() {
		return "Employee [name=" + name + ", age=" + age + ", salary=" + salary + ", job=" + job + "]";
	}
    
}

实现类:

package cn.sxt.work10;

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

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

public class Test {
/**
 * 解析xml文件,利用dom4j
 * @param args
 * @throws DocumentException 
 */
	public static void main(String[] args) throws DocumentException {
		 //创建Saxreader对象
		SAXReader  reader=new SAXReader();
		//调用reader的对象中的方法read。
		Document doc = reader.read(new File("employee.xml"));
		//创建集合存放employee对象
		List<Employee> list=new ArrayList<>();
		//获取根节点
		Element root = doc.getRootElement();
		for(Iterator<Element> subroot=root.elementIterator();subroot.hasNext();) {
			Element sub = subroot.next();//sub为根节点的子节点。
			for(Iterator<Attribute> atr=sub.attributeIterator();atr.hasNext();) {
				Attribute next = atr.next();
				System.out.println("属性的名称:"+next.getName()+"\t"+next.getValue());
			}
			//System.out.println("\n========================");
		}
		//获取子节点的值
		for(Iterator<Element>  sub=root.elementIterator();sub.hasNext();) {
			Element child = sub.next();
			//创建对象
			   Employee e=new Employee();
			//获取子节点
			for(Iterator<Element> subchild=child.elementIterator();subchild.hasNext();) {
				Element next = subchild.next();
				String str = next.getName();
				//System.out.println(str);
				switch (str) {
				case "name":
					e.setName(next.getText());
					break;
				case "age":
					e.setAge(Integer.parseInt(next.getText()));
					break;
				case "salary":
					e.setSalary(Long.parseLong(next.getText()));
					break;
				case "job":
					e.setJob(next.getText());
					break;
				
				}
				//list.add(e);
				System.out.println(next.getName()+"\t"+next.getText());
				
			}
			list.add(e);
			System.out.println("=================");
		}
		//System.out.println(list);
       //遍历集合
		for (Employee employee : list) {
			System.out.println("员工的信息为:"+employee.toString());
		}
		
	}

}

效果截图:

需要dom4j的jar包的私聊告诉我。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值