首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java XML 處理利器:dom4j 核心功能全解析

     編輯:Java 相關知識

dom4j 簡介

dom4j 是 Java 平台上一款簡單易用的 XML 處理工具,基於 Java Collections 架構,完整支援 DOM、SAX、JAXP 標準。它以靈活的 API 和優異的性能,成為 Java 開發者處理 XML 的首選庫之一。

1. 創建新的 XML 文檔

使用 DocumentHelper 快速構建文檔結構,通過鏈式調用添加元素、屬性及文本內容:

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

public class Users {
    public Document createDocument() {
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement("users");
        root.addElement("user")
            .addAttribute("userid", "sucode")
            .addAttribute("username", "Eric Yu")
            .addText("myself");
        root.addElement("user")
            .addAttribute("userid", "scottl")
            .addAttribute("username", "Scott Long")
            .addText("FreeBSD leader");
        return document;
    }
}

生成的 XML 結構:

<users>
  <user userid="sucode" username="Eric Yu">myself</user>
  <user userid="scottl" username="Scott Long">FreeBSD leader</user>
</users>

2. XML 文檔與字符串互轉

得益於 Node 接口的 asXML() 方法,文檔、元素、屬性均可輕鬆轉為 XML 字符串;反向解析同樣簡單:

Document document = (new Users()).createDocument();
String text = document.asXML();  // 文檔轉字符串
Document doc = DocumentHelper.parseText(text);  // 字符串轉文檔

3. 快速遍歷大型 XML

針對大文檔,避免頻繁創建 Iterator 開銷,推薦使用索引ベース的快速遍歷:

public void treeWalk(Document document) {
    treeWalk(document.getRootElement());
}
public void treeWalk(Element element) {
    for (int i = 0, size = element.nodeCount(); i < size; i++) {
        Node node = element.node(i);
        if (node instanceof Element) {
            treeWalk((Element) node);
        } else {
            // 業務邏輯處理
        }
    }
}

4. XPath 強力查詢

dom4j 支援在文檔或任意節點上執行 XPath 表達式:

// 獲取所有 user 節點
List userlist = document.selectNodes("//users/user");
// 獲取 userid 為 sucode 的唯一節點
Element user = (Element) document.selectSingleNode("//users/user[@userid='sucode']");

selectSingleNode 返回首個匹配節點,後續匹配會被忽略。

5. 將 XML 寫入文件

dom4j 提供直觀的寫入方式,並可通過 XMLWriter 指定格式化輸出:

FileWriter out = new FileWriter("users.xml");
document.write(out);

// 或者使用 XMLWriter 實現漂亮打印
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

XMLWriter writer = new XMLWriter(new FileWriter("users.xml"),
    OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved