1、DOM4J的诞生背景

很多人傻傻分不清DOM4J和JDOM,尤其是它们的名字更让人懵懂。其实,DOM4J与JDOM是同宗同源,而且JDOM是先祖,占据先天优势,所以起了一个好听好写的名字,叫“JDOM”。而DOM4J则是JDOM的后代分支,所以只能起了一个数学和字符夹杂的名字,叫“DOM4J”。

JDOM比DOM更好用,因为它是Java原生的,前文中已经有相关的介绍,只不过因为抛弃了面向接口编程的思想,所以灵活性不足,所以人们又开发了DOM4J。

2、DOM4J的官方网站

https://dom4j.org/

https://github.com/dom4j

3、DOM4J的使用介绍1

因为DOM4J与JDOM同宗同源,所以两者的用法十分相似,下面是DOM4J的入门例子:

3.1、xml文件

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user id="1">
        <firstname>Peter</firstname>
        <lastname>Brown</lastname>
        <occupation>programmer</occupation>
    </user>
    <user id="2">
        <firstname>Martin</firstname>
        <lastname>Smith</lastname>
        <occupation>accountant</occupation>
    </user>
    <user id="3">
        <firstname>Lucy</firstname>
        <lastname>Gordon</lastname>
        <occupation>teacher</occupation>
    </user>    
</users>

3.2、DOM4J的代码例子

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 Dom4j {

    public static void main(String[] args) throws DocumentException {
        SAXReader sax = new SAXReader();
        File file = new File("src/main/resources/dom2.xml");
        Document document = sax.read(file);
        Element root = document.getRootElement();
        List<Element> users = root.elements("user");
        for (Element user : users) {
            String id = user.attributeValue("id");
            if (id != null) {
                System.out.println("id=" + user.attributeValue("id"));
            }

            List<Element> firstname = user.elements("firstname");
            for (Element name : firstname) {
                System.out.println("firstname:" + name.getText());
            }

            List<Element> lastname = user.elements("lastname");
            for (Element name : lastname) {
                System.out.println("lastname:" + name.getText());
            }

            List<Element> occupation = user.elements("occupation");
            for (Element job : occupation) {
                System.out.println("toccupation:" + job.getText());
            }

            System.out.println("================================================");

        }

    }

}

4、DOM4J的使用小结

DOM4J常用的类有两个,学习成本非常低:

import org.dom4j.Document;
import org.dom4j.Element;

DOM4J常用的方法有四个:

(1)获取根节点

Element root = document.getRootElement();

(2)通过根节点获取子节点

List<Element> users = root.elements("user");

(3)获取子节点的属性值

user.attributeValue("id")

(4)获取子节点的文本值

name.getText()

标签: none

添加新评论