JAVA动态读取xml_Java动态生成和解析xml文件步骤详解

本文介绍了使用Java的DOM4J库动态读取XML文档的方法。通过创建SAXReader读取XML文档,将其内容存入Document对象,再获取根元素,逐级获取子元素以遍历数据。最后将XML文档中的员工信息解析出来,存入List集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

packageday12;importjava.io.FileInputStream;importjava.util.ArrayList;importjava.util.List;importorg.dom4j.Document;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;/*** 使用DOM4J解析XML文档

*@authortarena

**/

public classParseXMLDemo {public static voidmain(String[] args) {/** 读取emplist文件,将该xml文档中的所有员工信息解析出来,

* 并以若干Emp实例保存,然后将这些员工信息存入到一个List集合中。*/

/** 使用DOM解析XML的四大致流程:

* 1.创建SAXReader

* 2.使用SAXReader读取要解析的XML文档,该步骤就是DOM耗时耗资源的地方,

* 因为会将文档所有内容解析完毕并存入到内存中。

* 读取方法会返回一个Document对象,该对象就表示解析出来的该XML文档内容

* 3.通过Document对象获取根元素(根标签)。

* 4.根据文档的结构,从根元素开始逐级获取子元素以达到遍历XML文档数据的目的。*/

try{//1

SAXReader reader = newSAXReader();//2

Document doc = reader.read(new FileInputStream("emplist.xml"));/**3.获取根元素

*Element的每一个实例用于表示XML文档中的一个元素(一对标签)

*它提供了很多用于操作当前标签的方法,其中常用的用于获取标签信息的方法有:

*

* String getName() 获取标签名

*

* Element elements(Sting name) 根据给定名字获取当前标签中的子标签

*

* List elements()

* 获取当前标签中的所有子标签,返回的集合中是若干Element实例,每个为一个子元素

*

* List elements(String name) 获取当前标签中的所有同名名字元素

*

* String getText() 获取当前标签中间的文本

*

* Attribute attribute(String name) 获取当前标签中指定名字的属性

**/Element root=doc.getRootElement();

List empList = new ArrayList();/** 获取标签中的所有标签*/List list =root.elements();/** 将每一个标签中的内容取到,并以一个Emp实例保存,然后将该对象存入集合*/

for(Element empEle : list){//System.out.println(empEle.getName());//获取name

Element nameEle = empEle.element("name");

String name=nameEle.getText();

System.out.println(name);//获取age

int age = Integer.parseInt(empEle.elementText("age"));

System.out.println(age);//获取性别

String gender = empEle.elementText("gender");

System.out.println(gender);//获取工资

int salary = Integer.parseInt(empEle.elementText("salary"));

System.out.println(salary);//获取ID

int id = Integer.parseInt(empEle.attributeValue("id"));

Emp emp= newEmp(id , name , age ,gender, salary);

empList.add(emp);

}

System.out.println("解析完成!");for(Emp e:empList){

System.out.println(e);

}

}catch(Exception e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值