?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳門黃金城官網app:在Java中實現DOM文檔和XML文件互相轉換

?

文簡要描述了DOM的觀點和內部邏輯布局,實例講述DOM文檔操作和XML文件相互轉換的java實現歷程。

1. DOM簡介

今朝,W3C已于2000年11月13日推出了規范DOM level 2。文檔工具模型(DOM)是HTML和XML文檔的編程接口規范,它與平臺和說話是無關的,因而可以用各類說話在各類平臺上實現。該模型定義了THML和XML文件在內存中的邏輯布局(即為文檔),供給了造訪、存取THML和XML文件的措施。使用DOM規范,可以實現DOM 文檔和XML之間的互相轉換,遍歷、操作響應DOM文檔的內容??梢哉f,要自由的操縱XML文件,就要用到DOM規范。

2. DOM內部邏輯布局

DOM文檔中的邏輯布局可以用節點樹的形式進行表述。經由過程對XML文件的解析處置懲罰,XML文件中的元素便轉化為DOM文檔中的節點工澳門黃金城官網app具。DOM的文檔節點有Document、Element、Comment、Type等等節點類型,澳門黃金城官網app此中每一個DOM文檔必須有一個Document節點,并且為節點樹的根節點。它可以有子節點,或者葉子節點如Text節點、Comment節點等。任何的款式優越的XML文件中的每一個元素均有DOM文檔中的一個節點類型與之對應。使用DOM接口將XML文件轉化成DOM文檔后,我們就可以自由的處置懲罰XML文件了。

3. java中的DOM接口

DOM規范供給的API的規范,今朝Sun公司推出的jdk1.4測試版中的java API遵照了 DOM level 2 Core保舉接口的語義闡明,供給了響應的java說話的實現。

在org.xml.dom中,jkd1.4供給了Document、DocumentType、Node、NodeList、Element、Text等接口,這些接口均是造訪DOM文檔所必須的。我們可以使用這些接口創建、遍歷、改動DOM文檔。

在javax.xml.parsers中,jkd1.4供給的DoumentBuilder和DocumentBuilderFactory組合可以對XML文件進行解析,轉換成DOM文檔。

在javax.xml.transform.dom和javax.xml.transform.stream中,jdk1.4供給了DOMSource類和StreamSource類,可以用來將更新后的DOM文檔寫入天生的XML文件中。

4. 例程

4.1 將XML文件轉化成DOM文檔

這個歷程是得到一個XML文件解析器,解析XML文件轉化成DOM文檔的歷程。

Jdk1.4中,Document接口描述了對應于全部XML文件的文檔樹,供給了對文檔數據的造訪,是該步驟的目標。Document接口可以從類DocumentBuilder中獲取,該類包孕了從XML文檔得到DOM文檔實例的API。XML的解析器可以從類DocumentBuilderFactory中獲取。在jdk1.4中,XML文件轉化成DOM文檔可以有如下代碼實現:

//得到一個XML文件的解析器

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

//解析XML文件天生DOM文檔的接口類,以便造訪DOM。

DocumentBuilder builder = factory.newDocumentBuilder();

document = builder.parse( new File(FileName) );

4.2 遍歷DOM文檔

得到接口類docu澳門黃金城官網appment實例后,可以對DOM的文檔樹進行造訪。要遍歷DOM文檔,首先要得到Root元素。然后得到Root元素的子節點列表。這里經由過程遞歸的措施實現遍歷的目的。

//得到Root元素

Element element = document.getDocumentElement();

//得到Root元素的子節點列表

nodelist = element.getChildNodes();

//用遞歸措施實現DOM文檔的遍歷

GetElement(nodelist);

此中GetElement措施實現如下:

public void GetElement(NodeList nodelist){

Node cnode;

int i,len;

String str;

if(node澳門黃金城官網applist.getLength() == 0)

// 該節點沒有子節點

return;

}

for(i=0;i 1)

System.out.println(" "+str+" "+len);

}

}

}

留意:上面的代碼只是顯示Node類型和Text類型的工具。它們的類型標識分手是1和3。

4.3 改動DOM文檔

改動DOM文檔的API在DOM level 2 Core規范中做了闡明,jkd1.4中的org.xml.dom中實現了這些API。改動DOM文檔操作主要集中在Document、Element、Node、Text等類中,這里給出的例子中是在解析出的DOM文檔中增添一系列工具,對應與在XML文件中增添一筆記錄。

// 得到Root工具

Element root = document.getDocumentElement();

// 在DOM文檔中增添一個Element節點

Element booktype = document.createElement("COMPUTES");

//將該節點轉化成root工具的子節點

root.appendChild(cdrom);

//在DOM文檔中增添一個Element節點

Element booktitle = document.createElement("Title");

//將該節點轉化成booktype工具的子節點

booktype.appendChild(booktitle);

//在DOM文檔中增添一個Text節點

Text bookname = document.createTextNode("understand Corba");

//將該節點轉化成bookname工具的子節點

booktitle.appendChild(bookname);

4.4 將DOM文檔轉化成XML文件

// 得到將DOM文檔轉化為XML文件的轉換器,在jdk1.4中,有類TransformerFactory

// 來實現,類Transformer實現轉化API。

TransformerFactory tfactory = TransformerFactory.newInstance();

Transformer transformer = tfactory.newTransformer();

// 將DOM工具轉化為DOMSource類工具,該工詳細現為轉化成其余表達形式的信息容器。

DOMSource source = new DOMSource(document);

/* 得到一個StreamResult類工具,該工具是DOM文檔轉化成的其他形式的文檔的容器,

可所以XML文件,文本文件,HTML澳門黃金城官網app文件。這里為一個XML文件。*/

StreamResult result = new StreamResult(new File(“text.xml”));

// 調用API,將DOM文檔轉化成XML文件。

transformer.transform(source,result);

這里供給了該例程的完備法度榜樣,該例程在windows 2000中jdk1.4情況中運行經由過程。

以上給出了一個例子,讀者可以從中懂得到對DOM操作的思路。由于對DOM的操作均遵照了DOM規范,以是也適用于其它說話對DOM的處置懲罰。

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户