本例演示使用 JDOM 庫構建 XML 文檔:創建根元素、添加子元素與屬性、刪除指定節點,最終輸出格式化的 XML 文件。
import org.jdom.*;
import org.jdom.output.*;
import java.io.*;
import java.util.List;
public class JDOMOption {
public JDOMOption() {
String[] strChapter = {"基礎知識", "圖形界面", "圖形處理", "I/O操作", "網絡編程", "數據庫"};
Element elmtRoot = new Element("Article");
Document docJDOM = new Document(elmtRoot);
// 構建 6 個 Chapter 元素
for (int i = 0; i < 6; i++) {
Element elmtChapter = new Element("Chapter");
elmtChapter.addContent(strChapter[i]); // 設置文本內容
Attribute a = new Attribute("sort", new Integer(i).toString());
elmtChapter.addAttribute(a); // 添加屬性
elmtRoot.addContent(elmtChapter); // 掛載到根節點
}
// 刪除第 5 個元素(索引 4)
List lstChapter = elmtRoot.getChildren("Chapter");
lstChapter.remove(4);
// 輸出 XML 文件
OutputXML(docJDOM, "myJDOM.xml");
}
private void OutputXML(Document docXML, String strFilename) {
XMLOutputter fmt = new XMLOutputter();
try {
fmt.setEncoding("GB2312"); // 設置編碼
fmt.setNewlines(true); // 換行縮進
FileWriter fwXML = new FileWriter(strFilename);
fmt.output(docXML, fwXML); // 寫入文件
fwXML.close();
} catch (IOException e) { e.printStackTrace(); }
}
public static void main(String[] args) {
new JDOMOption();
}
}
<?xml version="1.0" encoding="GB2312"?> <Article> <Chapter sort="0">基礎知識</Chapter> <Chapter sort="1">圖形界面</Chapter> <Chapter sort="2">圖形處理</Chapter> <Chapter sort="3">I/O操作</Chapter> <Chapter sort="5">數據庫</Chapter> </Article>
註:原第 5 章「網絡編程」(索引 4)已被刪除。
| 類/方法 | 用途 |
|---|---|
Element | XML 元素節點,構造器傳入標籤名 |
Document | XML 文檔根對象,構造器傳入根元素 |
addContent() | 添加子元素或文本內容 |
Attribute | 屬性節點,new Attribute(name, value) |
addAttribute() | 將屬性添加到元素 |
getChildren(name) | 獲取指定名稱的子元素列表 (List) |
XMLOutputter | XML 序列化輸出器 |
setEncoding/setNewlines | 設置輸出編碼與格式化 |
output(Document, Writer) | 寫入字符流 |
需引入 JDOM JAR 包(Maven 坐標):
<dependency> <groupId>org.jdom</groupId> <artifactId>jdom2</artifactId> <version>2.0.6</version> </dependency>
註:原例使用 JDOM 1.x,現代項目建議使用 JDOM 2.x,包名變為 org.jdom2。