Java如何解析xml,這篇文章就夠了

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開發實戰經典,李興華。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章