JDOM是一種使用 XML 的獨特 Java 工具包,用于快速開發 XML 應用程序。它的設計包含 Java 語言的語法乃至語義。
JAXP (用于 XML 語法分析的 Java API)包含了三個軟件包
–org.w3c.dom ,W3C 推薦的用于 XML 標準規劃文檔對象模型的 Java 工具
–org.xml.sax ,用于對 XML 進行語法分析的事件驅動的簡單 API
–javax.xml.parsers ,工廠化工具,允許應用程序開發人員獲得并配置特殊的語法分析器工具. JDOM 能夠替換 org.w3c.dom 軟件包來有計劃地操作 XML 文檔
JDOM是一個開源項目,它基于樹型結構,利用純JAVA的技術對XML文檔實現解析、生成、序列化以及多種操作。
JDOM 直接為JAVA編程服務。它利用更為強有力的JAVA語言的諸多特性(方法重載、集合概念等),把SAX和DOM的功能有效地結合起來。
JDOM是用Java語言讀、寫、操作XML的新API函數。在直接、簡單和高效的前提下,這些API函數被最大限度的優化。
JDOM 主要用來彌補DOM及SAX在實際應用當中的不足之處。這些不足之處主要在于SAX沒有文檔修改、隨機訪問以及輸出的功能,而對于DOM來說,JAVA程序員在使用時來用起來總覺得不太方便
jdom官方網站http://www.jdom.org/,目前最新包為:JDOM2.0.5.
例子:
package com.jdom;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class JDomTest2 {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("student.xml"));
Element element = doc.getRootElement();
System.out.println(element.getName());
// 獲取第一個
Element hello = element.getChild("學生");
System.out.println(hello.getText());
List<Element> els = element.getChildren();
for (Element el : els) {
List elList = el.getAttributes();
for (int i = 0; i < elList.size(); i++) {
Attribute attr = (Attribute) elList.get(i);
String attrName = attr.getName();
String attrValue = attr.getValue();
System.out.println(attrName + "=" + attrValue);
}
System.out.println("姓名:" + el.getChildText("姓名"));
System.out.println("性別:" + el.getChildText("性別"));
System.out.println("年齡" + el.getChildText("年齡"));
System.out.println("===============");
}
//可以對XML進行編輯
Element addEl = new Element("學生");
Attribute attr = new Attribute("學號", "4");
Element addEl01 = new Element("姓名");
addEl01.setText("我愛羅");
addEl.addContent(addEl01);
Element addEl02 = new Element("性別");
addEl02.setText("男");
addEl.addContent(addEl02);
addEl.setAttribute(attr);
element.addContent(addEl);
XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());
out.output(doc, new FileOutputStream("student2.xml"));
}
}
1、首先讀取XML文件。
2、獲取根節點,并取得根節點下的子節點,詳見截圖。
3、輸出XML文件各個節點的值,詳見截圖。
4、通過JDOM可以編進XML,并生成新的XML,詳見截圖。
附XML:
<?xml version="1.0" encoding="utf-8"?>
<學生名冊 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="student.xsd" >
<學生 學號="1">
<姓名>張三</姓名>
<性別>男</性別>
<年齡>20</年齡>
</學生>
<學生 學號="2">
<姓名>李四</姓名>
<性別>女</性別>
<年齡>19</年齡>
</學生>
<學生 學號="3">
<姓名>王五</姓名>
<性別>男</性別>
<年齡>21</年齡>
</學生>
</學生名冊>