黑马JAVA P196 XML文件的解析技术:Dom4j

本文深入探讨了Java中使用Dom4j库解析XML文件的技术,详细讲解了Dom4j的基本用法,包括创建、读取和修改XML文档的各种操作,帮助开发者提升XML处理能力。

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

 

 

 


 

 

 

package com.itheima.d1_dom4j;

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

import java.io.File;
import java.io.InputStream;

/**
 * 目标:学会使用dom4j解析XML文件中的数据
 * 1.导入dom4j框架。
 * 2.准备一个XML文件。
 */
public class Dom4jHelloWorldDemo1 {
    @Test
    public void parseXMLData() throws Exception {
        //1.创建一个Dom4j的解析器对象,代表了整个dom4j框架
        SAXReader saxReader = new SAXReader();
        //2.把SML文件加载到内存中成为一个Document文档对象
//        Document document = saxReader.read(new File("D:\\code\\javasepromax\\xml-app\\src\\com\\itheima\\d1_dom4j\\Contacts.xml"));需要通过模块名去定位
//        Document document = saxReader.read(new FileInputStream("D:\\code\\javasepromax\\xml-app\\src\\com\\itheima\\d1_dom4j\\Contacts.xml"));

        //注意:getResourceAsStream中的/是直接去src下寻找的文件
        InputStream is = Dom4jHelloWorldDemo1.class.getResourceAsStream("/com\\itheima\\d1_dom4j\\Contacts.xml");
        Document document = saxReader.read(is);

        //3.获取根元素对象
        Element root = document.getRootElement();
        System.out.println(root.getName());
    }
}
<?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>

 


 

 

 

package com.itheima.d1_dom4j;

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

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

/**
 * 目标:学会使用dom4j解析XML文件中的数据
 * 1.导入dom4j框架。
 * 2.准备一个XML文件。
 */
public class Dom4jHelloWorldDemo1 {
    @Test
    public void parseXMLData() throws Exception {
        //1.创建一个Dom4j的解析器对象,代表了整个dom4j框架
        SAXReader saxReader = new SAXReader();
        //2.把SML文件加载到内存中成为一个Document文档对象
//        Document document = saxReader.read(new File("D:\\code\\javasepromax\\xml-app\\src\\com\\itheima\\d1_dom4j\\Contacts.xml"));需要通过模块名去定位
//        Document document = saxReader.read(new FileInputStream("D:\\code\\javasepromax\\xml-app\\src\\com\\itheima\\d1_dom4j\\Contacts.xml"));

        //注意:getResourceAsStream中的/是直接去src下寻找的文件
        InputStream is = Dom4jHelloWorldDemo1.class.getResourceAsStream("/com\\itheima\\d1_dom4j\\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 userEle = root.element("user");
        System.out.println(userEle.getName());
        //默认提取第一个子元素对象
        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());
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值