SpringBoot集成DOM4J

SpringBoot集成DOM4J

简洁

​ DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J。

【优点】

①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。

②支持XPath。

③有很好的性能。

【缺点】

①大量使用了接口,API较为复杂。

POM文件导入依赖包

<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.1.3</version>
</dependency>

XML示例

<dataList>
    <data id="10086">
        <status value="200" name="状态1">status1</status>
        <message value="OK" name="消息1">message1</message>
    </data>
    <data id="10010">
        <status value="400" name="状态2">status2</status>
        <message value="NG" name="消息2">message2</message>
    </data>
</dataList>

实战案例

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

public class testDom4j {
    public void test() {
        // 创建读取器
        SAXReader reader = new SAXReader();
        // 读取文件
        Document doc = reader.read(file.getInputStream());
        // 获取根元素
        Element root = doc.getRootElement();
        // 获取根元素下所有元素
        List<Element> dataList = root.elements();
        // 获取根元素下所有元素
        List<Element> dataList = root.elements();
        for (Element data : dataList) {
            System.out.println(
                data.getName()
                +
                ":"
                +
                data.attributeValue("id")
            );
            List<Element> statusAndMessageList = data.elements();
            for (Element statusAndMessage : statusAndMessageList) {
                System.out.println(
                    statusAndMessage.getName()
                    +
                    ":"
                    +
                    statusAndMessage.attributeValue("value")
                    +
                    "、"
                    +
                    statusAndMessage.attributeValue("name")
                    +
                    "、"
                    +
                    statusAndMessage.getText()
                );
            }
        }
    }
}

实例输出结果

在这里插入图片描述

常用方法

// 创建读取器
SAXReader reader = new SAXReader();
// 读取XML文件
Document document = SAXReader.read();
// 获取根元素
Element rootElement = Element.getRootElement();
// 获取该元素下的所有元素
List<Element> elementList = Element.elements();
// 获取该元素的父元素
Element element = Element.getParent();
// 获取当前元素标签
String elementName = Element.getName();
// 获取当前元素属性值
String elementPropertyValue = Element.attributeValue("属性名称");
// 获取当前元素值(标签中间的值)
String text = Element.getText();
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值