关于Java中XML第三方解析框架DOM4J笔记

本文详细介绍了Java中使用DOM4J进行XML解析的过程,包括DOM4J的下载、学习资源、如何导入jar包,以及具体的解析代码实现方法。

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

一、dom4j下载地址

	/*
	*	dom4j下载地址
	*	选择版本 - Download - zip 下载
	*	之后解压
	*/
	
	https://dom4j.github.io/
	

下载截图

在这里插入图片描述

二、第三方学习文档

	/*
	*	打开解压文件夹 - docs目录下 : 就是第三方提供的学习文档
	*	- 选择 index.html 用浏览器打开
	*	- 选择左上角菜单栏中 : 快速入门(Quick start)
	*/

截图

在这里插入图片描述
在这里插入图片描述

三、导入jar包

	/*
	*	解压文件夹下 - dom4j-版本号.jar 
	*	
	*	< 打开IDEA - 模块下新建libs文件夹 >
	*	 
	*	将jar包复制到libs目录 - 右击jar包 - Add as Library 导包
	*/
	

截图

在这里插入图片描述
在这里插入图片描述

三、解析代码实现

方法

获取解析器对象
	SAXReader saxReader = new SAXReader();
利用解析器获取整个xml文档
	Document document  = saxReader.read(new File("xml文件路径"));
获取xml文档的根标签
	Element rootElement = document.getRootElement();
获取根标签下的各个子标签 返回一个集合
	1.获取全部
	rootElement.elements();
	2.获取指定名字的全部
	rootElement.elements("标签名");
遍历根下子标签集合 获取每一个子标签 element
	1.获取指定属性
	attribute = element.attribute("属性名");
	2.获取这个属性的值
	String value = attribute.getValue();
	3.获取element下的 指定的 子标签
	nameElement = element.element("标签名");
	4.获取nameElement的标签体内容
	String next = element.getNext();
<?xml version="1.0" encoding="UTF-8" ?>
<!--注释的内容-->
<!--本xml文件用来描述多个学生信息-->
<students>
    <!--第一个学生的信息-->
    <student id="1">
        <name>张三</name>
        <age>23</age>
    </student>
    <!--第二个学生的信息-->
    <student id="2">
        <name>李四</name>
        <age>24</age>
    </student>

    <aaa></aaa>
    
</students>

	/*
	*	需求:
	*		解析这个xml文件
	*		将解析到的数据封装成一个对象
	*		在将这些对象存入一个ArrayList集合中
	*		遍历集合
	*/
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

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

/**
 *  利用dom4j 解析xml文件
 */
public class XmlParse {
    public static void main(String[] args) throws DocumentException {
        //1.获取一个解析器对象
        SAXReader saxReader = new SAXReader();
        //2.利用解析器把xml文件加载到内存中 并返回一个xml文档对象
        Document document = saxReader.read(new File("myxml\\src\\xml\\student.xml"));
        //3.获取根标签
        Element rootElement = document.getRootElement();
        /*
         *   4.通过根标签 来获取student标签
         *   elements():获取根下(调用者)所有的子标签 并返回集合
         *   elements("标签名"):获取根下(调用者)所有指定子标签 并返回集合
         */
//        List list = rootElement.elements();
//        System.out.println(list.size());
        List<Element> studentElements = rootElement.elements("student");
        //创建集合 用来装学生对象的
        ArrayList<Student> list = new ArrayList<>();

        //5.遍历集合得到每一个student标签
        for (Element element : studentElements) {
            //element依次表示每一个student标签

            //获取id这个属性
            Attribute attribute = element.attribute("id");
            //获取id的属性值
            String id = attribute.getValue();

            //获取name标签  element("标签名"):获取调用者指定子标签
            Element nameElement = element.element("name");
            //获取这个标签 的 标签体 内容
            String name = nameElement.getText();

            //获取age标签
            Element ageElement = element.element("age");
            //获取age标签 的 标签体 内容
            String age = ageElement.getText();

            //打印
//            System.out.println(id + "--" + name + "--" + age);

            //封装成学生对象
            Student s = new Student(id,name,Integer.parseInt(age));
            //存入集合
            list.add(s);
        }
        //遍历集合
        for (Student student : list) {
            System.out.println(student);
        }
    }
}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值