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

使用 JDom 輕鬆整合 Java 與 XML:讀寫、輸出與導航完全指南

     編輯:Java 程式設計入門

前言

JDom 是以 Java 為中心優化的 XML API,由 Jason Hunter 與 Brett McLaughlin 開發,追求直觀、簡單、高效。它吸收 DOM 與 SAX 優點,提供輕量級、記憶體友善的操作模型,支援隨機存取與修改,並能與現有 SAX/DOM 系統互通。

JDom 設計原則

  1. 簡單易用:利用 Java 特性(方法多載、垃圾回收等),API 符合 Java 程式設計師直覺。如取得元素文字內容:element.getText() 即可,無需 getFirstChild().getValue() 繞彎。
  2. 快速輕量:解析速度快、記憶體消耗低,支援延遲建構(按需解析),未來可透過 SQL、LDAP 等資料源建構文件。

核心操作

取得 Document 物件

// 從頭建構
Document doc = new Document(new Element("rootElement"));

// 從既有來源建構(推薦 SAXBuilder)
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(url); // 亦可用 File、InputStream 等

SAXBuilder 速度快(接近 SAX),DOMBuilder 則可從既有 DOM 物件轉換,利於整合舊系統。

輸出 XML 文件

XMLOutputter outputter = new XMLOutputter(); // 可自訂縮排、換行、編碼
outputter.output(doc, System.out);

亦可用 SAXOutputter 產生 SAX 事件、DOMOutputter 產生 DOM 文件,便於與其他工具串接。

讀取文件型別

DocType docType = doc.getDocType();
System.out.println("Element: " + docType.getElementName());
System.out.println("Public ID: " + docType.getPublicID());
System.out.println("System ID: " + docType.getSystemID());

存取根元素與子節點

Element root = doc.getRootElement();
// 取得所有直接子元素
List allChildren = root.getChildren();
// 依名稱取得子元素列表
List named = root.getChildren("name");
// 取得第一個同名子元素
Element kid = root.getChild("name");

已知結構時可鏈式導航:root.getChild("gui").getChild("window-manager").getChild("name").getText()。注意防禦 NullPointerException。

屬性處理

String width = table.getAttributeValue("width");
Attribute attr = table.getAttribute("width");
int border = table.getAttribute("border").getIntValue(); // 自動轉型

屬性不存在時 getAttribute 回傳 null,轉型失敗拋出 DataConversionException。

混合內容處理

元素可能包含文字、註解、子元素、處理指令。getText() 僅取文字;getMixedContent() 回傳含各類節點的 List,配合 instanceof 判斷類型處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved