DOM那點事兒。。

DOM簡介

DOM的接口和類

DOM的用法

1.DOM簡介:

DOM是Document Object Model的縮寫,即文檔對象模型。

該模型定義了HTML和XML文件在內存中文檔結構,提供了對HTML和XML文件的訪問,儲存的方法。利用DOM規範,可以實現DOM文檔和XML之間的相互轉換,對相應的DOM文檔的內容進行遍歷或其他的操作。

如果要自由的操作XML文件,就要用到DOM(文檔對象模型)的規範。

DOM的原理簡單點說,就是通過解析XML文檔,爲XML文檔在邏輯上建立一個樹模型,在DOM中有這個樹的概念。

樹的節點是一個個對象。我們通過存取這些對象就能夠操作所謂的"XML"文檔中的內容了。

<? version="1.0" encoding="GB2312" ?>
<!--使用DOM解析關於學生信息的XML文檔,然後使用DOM的接口向該文檔中添加關於教師的信息。最後再用改動後的XML文檔替換該文檔。程序運行前,學生信息的XML文檔(class.xml)內容,如下圖標所示-->
<班級>
              <學生 編號="A001">
	        <姓名>張三</姓名>
	           <年齡>20</年齡>
	           <電子郵件>[email protected]</電子郵件>
	           <身高>179.5</身高>
	           <電話>13351810278</電話>
	          <單位>北京百度有限公司</單位>
              </學生>

              <學生 編號="B001">
	        <姓名>李四</姓名>
	           <年齡>22</年齡>
	           <電子郵件>[email protected]</電子郵件>
	           <身高>180.5</身高>
	           <電話>13336982232</電話>
                        <單位>北京新浪限公司</單位>
               </學生>
</班級>

 2.DOM的優缺點對比

    DOM的優勢主要表現在:易用性強,使用DOM時,將把所有的XML文檔信息都儲存在你計算機的內存中,並且遍歷簡單,

支持XPath,增強了易用性。

 

DOM的缺點主要表現在:效率低,解析速度慢,內存佔用量過高,對於大文件來說幾乎不可能使用。

在Java中DOM類的介紹

1.

DocumentBuilderFactory類

DocumentBuilderFactory類是一個抽象類,該類主要用於定義工廠的API,使用應用程序能夠從XML文檔中獲取生成DOM對象樹的解析器。該類位於java.xml.parsers包中。只有一個受保護的構造方法。

其構造方法如下:

protected DocumentBuilderFactory()方法:用於組織實例化的受保護構造方法。

2.DocumentBuilder類是一個抽象類,主要用於從XML文檔中獲取DOM文檔實例。

可以用過DocumentBuilderFactory.new DocumentBuilder();代碼獲取此類的實例。

 

獲取子類的實例後,將可以從各種輸入流來解析XML。

 

該類有一個受保護的構造方法 如下:

protected DocumentBuilder();

DocumentBuilder類 其他的常用辦法如下:

1).Document.parse(String uri)方法:將給定的URI的內容解析爲一個XML文檔,並且返回一個新的Document對象。

2).abstract Document new Document()方法:將獲取DOM Document對象的一個新實例來生成一個DOM樹。

3).void reset()方法:將此 DocumentBuider重置爲其原始配置。

4).abstract void setEntityResolver(EntityResolver er)方法:指定使用EntityResolver 解析要解析的XML文檔中存在的實體。

5).abstract void setErrorHandler(ErrorHandler eh)方法:指定解析器要使用的ErrorHandler. 

DOM的基本接口介紹

Document接口

Document接口表示整個HTML或XML文檔。它不僅指文檔的根,並提供對文檔數據的基本訪問。Document接口是對文檔進行操作的入口,它是從Node接口繼承過來的。該接口位於org.w3c.dom包中。

該接口的常用方法有以下幾種: 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。太困了不寫了。。待續中

 

 

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