真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

XML解析中DOM解析的案例分析-創(chuàng)新互聯(lián)

小編給大家分享一下XML解析中DOM解析的案例分析,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計制作、成都網(wǎng)站建設與策劃設計,海晏網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:海晏等地區(qū)。海晏做網(wǎng)站價格咨詢:18980820575

一、概念

xml文件多用于信息的描述,所以在得到一個xml文檔之后按照xml中的元素取出對應的信息就是xml的解析。Xml解析有兩種方式,一種是DOM解析,另一種是SAX解析,兩種操作的方式如圖。

XML解析中DOM解析的案例分析

二、DOM解析

基于DOM解析的xml分析器是將其轉換為一個對象模型的集合,用樹這種數(shù)據(jù)結構對信息進行儲存。通過DOM接口,應用程序可以在任何時候訪問xml文檔中的任何一部分數(shù)據(jù),因此這種利用DOM接口訪問的方式也被稱為隨機訪問。

這種方式也有缺陷,因為DOM分析器將整個xml文件轉換為了樹存放在內(nèi)存中,當文件結構較大或者數(shù)據(jù)較復雜的時候,這種方式對內(nèi)存的要求就比較高,且對于結構復雜的樹進行遍歷也是一種非常耗時的操作。不過DOM所采用的樹結構與xml存儲信息的方式相吻合,同時其隨機訪問還可利用,所以DOM接口還是具有廣泛的使用價值。

這里我們舉個栗子來說明xml轉換為樹的數(shù)據(jù)結構。


Van_DarkHolme van_darkholme@163.com Bili Bili@163.com

將該xml轉換為樹的結構為:

XML解析中DOM解析的案例分析

DOM解析中有以下4個核心操作接口

Document:此接口代表了整個xml文檔,表示為整個DOM的根,即為該樹的入口,通過該接口可以訪問xml中所有元素的內(nèi)容。其常用方法如下。

(注:上述圖中雖未畫出,但是name和email的屬性也分別為一個節(jié)點)

Document常用方法

XML解析中DOM解析的案例分析

Node:此接口在整個DOM樹中有著舉足輕重的地位,DOM操作的核心接口都繼承于Node(Document、Element、Attr)。在DOM樹中,每一個Node接口代表了一個DOM樹節(jié)點

Node接口常用方法

XML解析中DOM解析的案例分析

NodeList:此接口表示一個點的集合,一般用于有序關系的一組節(jié)點。

NodeList常用方法

XML解析中DOM解析的案例分析

NamedNodeMap:此接口表示一組節(jié)點和其唯一名稱對應的一一關系,主要用于節(jié)點屬性的表示

除了以上四個核心接口外,如果一個程序需要進行DOM解析操作,則需要按照如下步驟進行:

1. 建立DocumentBuilderFactor,用于獲得DocumentBuilder對象:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

2. 建立DocumentBuidler:

DocumentBuilder builder = factory.newDocumentBuilder();

3. 建立Document對象,獲取樹的入口:

Document doc = builder.parse(“xml文件的相對路徑或者絕對路徑”);

4. 建立NodeList:

NodeList n1 = doc.getElementByTagName(“讀取節(jié)點”);

5. 進行xml信息獲取

public class DOMDemo01 {
	
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
		//建立DocumentBuilderFactor,用于獲得DocumentBuilder對象:
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		//2.建立DocumentBuidler:
		DocumentBuilder builder = factory.newDocumentBuilder();
		//3.建立Document對象,獲取樹的入口:
		Document doc = builder.parse("src//dom_demo_02.xml");
		//4.建立NodeList:
		NodeList node = doc.getElementsByTagName("linkman");
		//5.進行xml信息獲取
		for(int i=0;i

XML解析中DOM解析的案例分析

上述代碼則從第四處開始分析:

通過doc.getElementByTagName(“l(fā)inkman”)我們獲得了一個NodeList,上述xml文件中包含了兩個linkman的節(jié)點,所以這里NodeList中包含了兩個Node(都是linkman節(jié)點),然后通過循環(huán)的方法來獲取xml文件中的信息。

Element e = (Element)node.item(i)獲得了linkman節(jié)點,即e這里指向了linkman

e.getElementTagName(“name”).item(0).getFirstChild().getNodeValue();

getElementTagName(“name”);獲得了該linkman下的所有name節(jié)點(其實就1個);

Item(0);取第一個Name節(jié)點(就一個);

getFristChild();獲取name節(jié)點下的文本節(jié)點,即內(nèi)容van所在的節(jié)點(上面已經(jīng)提到過,文本內(nèi)容也是一個單獨的節(jié)點,Document方法列表中的createTextNode()就是創(chuàng)建文本節(jié)點);

getNodeValue()獲得文本節(jié)點的值:van_darkholme;

看完了這篇文章,相信你對XML解析中DOM解析的案例分析有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


網(wǎng)站標題:XML解析中DOM解析的案例分析-創(chuàng)新互聯(lián)
轉載注明:http://weahome.cn/article/dhgcsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部