使用dom4j解析XML文件

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

来源:豆豆de思念

cnblogs.com/lukelook/p/8646354.html

公众号注:文末阅读原文可直达java开发学习网站


dom4j的简介



dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。


dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。


在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。


如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。


dom4j的简单解析



1、导入dom4j的Maven依赖


<!-- parser xml file -->
<dependency>
  <groupId>org.dom4j</groupId>
  <artifactId>dom4j</artifactId>
  <version>2.1.0</version>
</dependency>


2、创建userConfig.xml文件


<?xml version="1.0" encoding="UTF-8"?>
<users>
   <user>
       <userName>user1</userName>
       <password>123</password>
       <systemId>AAA</systemId>
   </user>
   <user>
       <userName>user2</userName>
       <password>456</password>
       <systemId>BBB</systemId>
   </user>
</users>


3、使用SAXReader类 和解析 xml文件


package com.my.utils;

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

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

public class ReadXMLConfig {

   public static void main(String[] args) {
       // TODO Auto-generated method stub
       
       //define config file path
       //String path = this.getClass().getClassLoader().getResource("").getPath()+"config/userConfig.xml";
       String path = "src/main/resources/config/userConfig.xml";
       
       SAXReader reader = new SAXReader();
       reader.setEncoding("utf-8");
       Document document = null;
       try {
           document = reader.read(new File(path));
           
           Element root = document.getRootElement();
           
           //get user list
           List<Element> list = root.elements("user");
           Element use1 = list.get(0);
           
           //get user info
           System.out.println(use1.element("userName").getStringValue());
           System.out.println(use1.element("password").getStringValue());
           System.out.println(use1.element("systemId").getStringValue());

       } catch (DocumentException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }

   }

}


输出结果如下:


user1
123
AAA

使用dom4j解析XML文件