xml檔案:
將整個xml資料轉換成乙個樹形物件[document物件]
將xml中的標籤,屬性,文字都作為乙個結點物件
在解析xml的時候,先將整個xml一次性讀入到記憶體中,
封裝成樹物件再進行操作
dom方式解析的優點:由於所有的結點都在記憶體的document物件中,支援隨機訪問public
class
xmldemo}}}}}
dom方式解析的缺點:
由於所有的資料是一次性讀入到記憶體中的,對於比較大的xml資料,非常佔記憶體
順序解析,事件驅動
按順序一邊讀取資料,一邊進行解析,在讀取資料的時候會觸發一定的事件,每觸發一次,就可以做一次處理
建立存放資料的物件public
class
saxpaserxml
}
建立事件處理器類:defaulthandlerpublic
class
student
public
void
setnum
(int num)
public string getname()
public
void
setname
(string name)
public
intgetage()
public
void
setage
(int age)
public
char
get***()
public
void
set***
(char ***)
@override
public string tostring()
';}}
sax的優點:由於每次值需要存放觸發事件的位置,占用記憶體較少/**
* sax的事件處理器,繼承defaulthandler
* 需要重寫defaulthandler的事件處理方法
* 事件處理器中的方法是通過事件觸發自動呼叫的
* */
public
class
myhander
extends
defaulthandler
//解析到開始標籤,需要處理標籤中的屬性
@override
public
void
startelement
(string uri, string localname, string qname, attributes attributes)
throws saxexception
}//解析到文字內容
@override
public
void
characters
(char
ch,int start,
int length)
throws saxexception
//解析到結束標籤
@override
public
void
endelement
(string uri, string localname, string qname)
throws saxexception
}//解析文件結束
@override
public
void
enddocument()
throws saxexception
}}
sax的缺點:不支援隨機訪問
XML解析的兩種方式比較DOM與Sax
對於dom解析,首先是將整個xml文件讀到記憶體中,形成一顆倒狀的dom樹,如下圖 從上面的dom樹,我們應該很清楚dom的解析思想了 其實就是在我們的程式對xml進行操作之前,dom解析器就把整個文件讀取到記憶體中去了。知道了dom解析的思想後,我們對其方式進行的利弊進行一下分析 1 優點 a.能...
XML的兩種解析方法 DOM與SAX的比較分析
1 sax解析 sax apifor xml。基於事件驅動的解析方法,逐行解析資料。解析過程 開始標籤 取值 結束標籤 取值 為解決dom的問題,出現了sax。sax 事件驅動。當解析器發現元素開始 元素結束 文字 文件的開始或 結束等時,傳送事件,程式設計師編寫響應這些事件的 儲存資料。2 dom...
XML的兩種解析方式Dom和SAX的區別
dom和sax是應用中操縱xml文件的兩種主要api,它們分別解釋如下 dom,即document object model,中文叫文件物件模型。dom是w3c定義的標準文件物件模型,是乙個與作業系統和程式語言無關的 用於記憶體儲存和操作層次化文件的模型。當按照dom模型解析xml文件時,就會在記憶...