Java dom4j库解析XML入门教程_Java dom4j库解析XML基础教程

首先添加dom4j依赖,然后创建XML文件,接着使用SAXReader读取并解析XML,获取根元素后遍历book节点,提取id属性及title、author、price子元素文本并打印输出。

使用Java解析XML文件时,dom4j是一个非常流行且功能强大的开源库。它提供了简洁的API来读取、操作和写入XML数据,相比原生的DOM或SAX更易于使用。下面是一个入门级教程,帮助你快速掌握如何用dom4j解析XML文件。

1. 添加dom4j依赖

如果你使用Maven项目,在pom.xml中添加以下依赖:


  org.dom4j
  dom4j
  2.1.3

Gradle用户可使用:

implementation 'org.dom4j:dom4j:2.1.3'

下载jar包的用户需手动将dom4j的jar加入classpath。

2. 准备一个简单的XML文件

在项目资源目录下创建一个名为book.xml的文件:



  
    Java编程思想
    Bruce Eckel
    89.00
  

  
    Effective Java
    Joshua Bloch
    79.00
  

3. 使用dom4j读取并解析XML

下面代码演示如何加载XML文件,并遍历所有book节点:

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

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

public class Dom4jExample {
    public static void main(String[] args) {
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(new File("src/book.xml"));
            Element root = document.getRootElement();
            List books = root.elements("book");

            for (Element book : books) {
                String id = book.attributeValue("id");
                String title = book.elementText("title");
                String author = book.elementText("author");
                String price = book.elementText("price");

                System.out.println("ID: " + id);
                System.out.println("书名: " + title);
                System.out.println("作者: " + author);
                System.out.println("价格: " + price);
                System.out.println("---");
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
}

运行后会输出每个book的信息,包括id属性和各个子元素内容。

4. 常用API说明

  • reader.read(file):加载XML文件生成Document对象
  • document.getRootElement():获取根节点
  • element.elements("name"):获取指定名称的所有子元素
  • element.attributeValue("attr"):获取元素的属性值
  • element.elementText("child"):获取直接子元素的文本内容

这些方法覆盖了大多数基础解析需求,适合处理结构清晰的配置文件或数据交换格式。

基本上就这些。dom4j上手快,代码简洁,是Java处理XML的优选方案之一。熟悉基本用法后,可以进一步学习XPath支持、创建/修改XML、命名空间处理等高级功能。