1,解析的使用步骤范例:
a,xml文件:
//xml文件:<?xml version="1.0" encoding="UTF-8"?><contactList>    <contact id="1" vip="true">        <name>潘金莲</name>        <gender>女</gender>        <email>panpan@itcast.cn</email>    </contact><!-- id 和 vip 是属性名  -->    <contact id="2" vip="false"><!--    在属性下面的是子元素名:name ,被子元素包括的是子元素文本    -->        <name>武松</name>        <gender id="1000">男</gender>        <email>wusong@itcast.cn</email>    </contact>    <contact id="3">        <name>武大狼</name>        <gender>男</gender>        <email>wuda@itcast.cn</email>    </contact>    <message>        <name>小王</name>    </message>    <name>老王</name></contactList>
b,Contcact属性定义类:
/** * @author Jztice5 * @date 2022年02月25日 上午 11:05 */public class Contcact {    private int id;    private boolean vip;    private String name;    private String gender;    private String email;    public Contcact () {    }    public Contcact (int id, boolean vip, String name, String gender, String email) {        this.id = id;        this.vip = vip;        this.name = name;        this.gender = gender;        this.email = email;    }    /**     * 获取     * @return id     */    public int getId () {        return id;    }    /**     * 设置     * @param id     */    public void setId (int id) {        this.id = id;    }    /**     * 获取     * @return vip     */    public boolean isVip () {        return vip;    }    /**     * 设置     * @param vip     */    public void setVip (boolean vip) {        this.vip = vip;    }    /**     * 获取     * @return name     */    public String getName () {        return name;    }    /**     * 设置     * @param name     */    public void setName (String name) {        this.name = name;    }    /**     * 获取     * @return gender     */    public String getGender () {        return gender;    }    /**     * 设置     * @param gender     */    public void setGender (String gender) {        this.gender = gender;    }    /**     * 获取     * @return email     */    public String getEmail () {        return email;    }    /**     * 设置     * @param email     */    public void setEmail (String email) {        this.email = email;    }    @Override    public String toString () {        return "Contcact{" +                "id=" + id +                ", vip=" + vip +                ", name='" + name + '\'' +                ", gender='" + gender + '\'' +                ", email='" + email + '\'' +                '}';    }}
c,main方法类:
import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import java.util.ArrayList;import java.util.List;/** * @author Jztice5 * @date 2022年02月25日 上午 11:08 */public class Text01 {    public static void main (String[] args) throws DocumentException {        //1,创建解析器        SAXReader saxReader = new SAXReader();        //2,使用解析器解析xml        Document read = saxReader.read("day14_A\\XML\\Contact.xml");        //3,获取根元素        Element rootElement = read.getRootElement();        //获取根元素的名字        String name = rootElement.getName();        System.out.println(name);        //获取一个指定名字的子元素        Element contact = rootElement.element("contact");        //获取根元素下的所有子元素        List <Element> elementlists = rootElement.elements("contact");        //创建保存的集合        ArrayList <Contcact> list = new ArrayList <>();        //遍历所有子元素        for (Element element : elementlists) {            //输出子元素的名字            System.out.println(element.getName());            //通过属性名获取对应的属性值;attributeValue            String idStr = element.attributeValue("id");            int id = Integer.parseInt(idStr);            String vipStr = element.attributeValue("vip");            boolean vip = Boolean.parseBoolean(vipStr);            //通过子元素名获取子元素的文本;elementText            String name1 = element.elementText("name");            String gender = element.elementText("gender");            String email = element.elementText("email");            //将获取到的数据存进对象            Contcact c = new Contcact(id, vip, name1, gender, email);            //再把对象添加到list集合            list.add(c);        }        //用的时候直接在集合拿就行了        for (Contcact contcact : list) {            System.out.println(contcact);        }    }}