当前位置: 移动技术网 > IT编程>开发语言>Java > 使用DOM解析XML文档

使用DOM解析XML文档

2020年01月07日  | 移动技术网IT编程  | 我要评论

成龙家谱曝光,老婆向前冲,泰安股票学习网

创建一个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>

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();
        }
    }

}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网