DOM4J是一組xml操作的組件包,主要用來讀寫XML文件。由於DOM4J性能優異,功能強大,且具有易用性,所以已經被廣泛地應用開來。
DOM4J的主要接口:
接口 | 描述 |
---|---|
Attribute | 定義了XML的屬性 |
Branch | 爲能夠包含子節點的節點,如XML元素和文檔,定義了一個公共的行爲 |
CDATA | 定義了XML CDATA區域 |
CharacterData | 是一個標識接口,標識基於字符的節點,如CDATA、Comment、Text |
Comment | 定義了XML的註釋 |
Document | 定義了XML文檔 |
Element | 定義了XML元素 |
Text | 定義了XML文本節點 |
下面是生成和讀取XML文件的操作。在讀取和生成之前我們需要引入maven依賴,依賴如下:
<dependencies>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
</dependencies>
生成xml的代碼:
//生成xml文件
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class XMLDemo {
public static void main(String[] args) {
Document doc = DocumentHelper.createDocument();
Element addresslist = doc.addElement("addresslist");
Element linkman = addresslist.addElement("linkman");
Element name = linkman.addElement("name");
Element email = linkman.addElement("email");
name.setText("小韓");
email.setText("email");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("gbk");
try {
XMLWriter writer = new XMLWriter(new FileOutputStream(new File("D://abc.xml")),format);
writer.write(doc);
writer.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
程序運行結果:
<?xml version="1.0" encoding="gbk"?>
<addresslist>
<linkman>
<name>小韓</name>
<email>email</email>
</linkman>
</addresslist>
讀取xml的代碼
//解析xml文件代碼
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DOM4JReader {
public static void main(String[] args) {
File file = new File("D://abc.xml");
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(file);
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
Iterator iter = root.elementIterator();
while(iter.hasNext()) {
Element linkman = (Element)iter.next();
System.out.println("姓名:"+ linkman.elementText("name"));
System.out.println("email:"+ linkman.elementText("email"));
}
}
}
注:
現在xml前後端傳送數據運用較少,傳送數據一般使用json數據格式,xml目前一般作爲配置文件使用。如果是前後端傳送數據,建議瞭解json。
參考書籍:
Java開發實戰經典,李興華。