XML文件解析技术:Dom4J

package com.czie.d1_dom4j;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

import java.io.InputStream;
import java.util.List;

/**
 * FileName: Dom4jHellowWroldDemo1
 * Author:   lps
 * Date:     2022/4/28 13:55
 * Sign:刘品水 Q:1944900433
 * 目标:学会dom4j解析XML文件的数据
 * 1.导入dom4j框架
 * 2.准备一个XML文件。
 */
public class Dom4jHellowWroldDemo1 {
    @Test
    public void parsrXMLData() throws Exception {
        //1.创建一个dom4j的解析器对象 代表整个dom4j框架
        SAXReader saxReader = new SAXReader();
        //2.把xml文件加载在内存中成为一个Document对象
        //Document document = saxReader.read(new File("F:\\JavaCode\\xml_app\\src\\Contacts.xml"));

        //getResourceAsStream中的/是直接去src下寻找文件
        InputStream is=Dom4jHellowWroldDemo1.class.getResourceAsStream("/Contacts.xml");
        Document document = saxReader.read(is);

        //3.获取根元素对象
        Element root = document.getRootElement();
        System.out.println(root.getName());

        //4.拿根元素下的全部子元素对象 (一级)

        //List<Element> sonEles=root.elements();
        List<Element> sonEles=root.elements("contact");
        for (Element sonEle : sonEles) {
            System.out.println(sonEle.getName());
        }

        //拿某个子元素
        Element useEil = root.element("user");
        System.out.println(useEil.getName());
        //默认提取第一个子元素对象
        System.out.println("=======");
        Element contact = root.element("contact");
        //获取子元素文本
        System.out.println(contact.elementText("name"));
        System.out.println(contact.elementTextTrim("name"));
        //根据元素获取属性值
        Attribute idAttr = contact.attribute("id");
        System.out.println(idAttr.getName()+"-->"+idAttr.getValue());
        //直接提取属性值
        System.out.println(contact.attributeValue("id"));
        System.out.println(contact.attributeValue("vip"));
        //获取当前元素下子元素对象
        Element email = contact.element("email");
        System.out.println(email.getText());



    }
}
<?xml version="1.0" encoding="UTF-8"?>
<contactList>
    <contact id="1" vip="true">
        <name>   潘金莲  </name>
        <gender>女</gender>
        <email>panpan@itcast.cn</email>
    </contact>
    <contact id="2" vip="false">
        <name>武松</name>
        <gender>男</gender>
        <email>wusong@itcast.cn</email>
    </contact>
    <contact id="3" vip="false">
        <name>武大狼</name>
        <gender>男</gender>
        <email>wuda@itcast.cn</email>
    </contact>
    <user>
    </user>
</contactList>

 

posted @ 2022-04-28 20:06  刘品水  阅读(66)  评论(0编辑  收藏  举报