使用DOM解析XML文档
2020-01-07 08:33:43来源:博客园 阅读 ()
使用DOM解析XML文档
创建一个XML文件,deptlist.xml
<?xml version="1.0" encoding="UTF-8"?> <list> <dept id="1"> <name>综合部</name> <createtime>2020-01-01</createtime> <age>400</age> <minister>孙悟空</minister> </dept> <dept id="2"> <name>人事部</name> <createtime>2020-01-02</createtime> <age>300</age> <minister>朱悟能</minister> </dept> <dept id="3"> <name>研发部</name> <createtime>2020-01-03</createtime> <age>200</age> <minister>白龙马</minister> </dept> <dept id="4"> <name>销售部</name> <createtime>2020-01-04</createtime> <age>300</age> <minister>沙悟净</minister> </dept> <dept id="5"> <name>售后部</name> <createtime>2020-01-05</createtime> <age>1000</age> <minister>唐三藏</minister> </dept> </list>deptlist.xml
2.创建一个xml.java文件
package xml; /** * @author xingsir * 部门类 * 该类每个实例用于表示一个部门信息 */ public class Dept { //创建属性 private int id; private String name; private String createtime; private int age; private String minister; /* * 右键点-Source-点 -generate constructor using fields,选择要生成的属性 * 这个选项自动生成带参数的 构造函数 */ public Dept(int id, String name, String createtime, int age, String minister) { super(); this.id = id; this.name = name; this.createtime = createtime; this.age = age; this.minister = minister; } /* * 右键点-Source-点 -generate getters and setters,选择要生成的属性 */ public String toString() { return id+","+name+","+createtime+","+age+","+minister; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getMinister() { return minister; } public void setMinister(String minister) { minister = minister; } }
3.创建 ParseXmlDemo2.java文件用于解析
package xml; import java.io.File; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * @author xingsir * 使用DOM解析XML文档 */ public class ParseXmlDemo2 { public static void main(String[] args) { /* * 将deptlist.xml文件中的所有部门信息读取出来 */ List<Dept> deptList = new ArrayList<>(); try { /* * 使用DOM4J解析XML的大致步骤 * 1:创建SAXReader * 2:使用SAXReader读取指定的xml文档并生成Document对象 * 3:通过Document对象获取根元素 * 4:从根元素开始逐级获取子元素已达到遍历XML文档数据的目的 */ SAXReader reader=new SAXReader(); Document doc= reader.read(new File("deptlist.xml")); /* * Document提供了获取根元素的方法:Element getRootElement() * * Element每个实例用于表示XML文档中的一个元素(一对标签) * 常用方法: * String getName()获取当前标签的名字 * String getText()获取当前标签中间的文本信息 * Element element(String name)获取当前标签中指定名字的子标签 * List elements()获取当前标签中所有子标签,返回的List集合中会包含若干的Element实例,每个实例是其中一个子标签 * List elements(String name)获取当前标签中所有同名子标签(指定的名字) */ Element root= doc.getRootElement(); //获取根标签下所有<dept>标签 List<Element>list =root.elements("dept"); //遍历部门标签获取每个部门的信息 for(Element empEle :list) { //获取部门名称 Element nameEle= empEle.element("name"); String name=nameEle.getText(); //获取创建时间,可以用elementText()直接获取文本信息 String createtime =empEle.elementText("createtime"); //获取年龄 int age = Integer.parseInt(empEle.elementText("age")); //获取ID int id = Integer.parseInt(empEle.attributeValue("id")); String minister=empEle.elementText("minister"); //实例化 Dept dept =new Dept(id, name, createtime,age,minister); //添加 deptList.add(dept); } System.out.println("解析完毕!"); //遍历 for(Dept d : deptList) { System.out.println(d); } } catch (Exception e) { e.printStackTrace(); } } }
原文链接:https://www.cnblogs.com/xingsir/p/12160011.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JVM常见面试题解析 2020-06-11
- 深入解析ThreadLocal和ThreadLocalMap 2020-06-08
- 聊聊 OAuth 2.0 的 token expire_in 使用 2020-06-08
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
- 学习笔记之方法引用 2020-06-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash