使用sax解析xml

java中,解析xml文檔的方式有兩種原生的方法,分別是:Dom解析和Sax解析。java

Dom解析功能很強大,可增刪改查,操做時將xml文檔以文檔對象的方式讀取到內存中,適用於小文檔。code

Sax解析是從頭至尾每一行每個元素讀取內容,修改較爲不便,但適用於只讀的大文檔。xml

咱們主要講解Sax解析,其他放在後面。對象

Sax採用事件驅動的方式解析文檔。簡單點說,如同在電影院看電影同樣,從頭至尾看一遍就完了,不能回退(Dom可來來回回讀取)。blog

在看電影的過程當中,每遇到一個情節,一段淚水,一次擦肩,你都會調動大腦和神經去接收或處理這些信息。一樣,在Sax的解析過程當中,讀取到文檔開頭、結尾,元素的開頭和結尾都會觸發一些回調方法,你能夠在這些回調方法中進行相應事件處理。這四個方法是:startDocument() 、 endDocument()、 startElement()、 endElement。此外,光讀取到節點處是不夠的,咱們還須要characters()方法來仔細處理元素內包含的內容,將這些回調方法集合起來,便造成了一個類,這個類也就是咱們須要的觸發器。事件

通常從Main方法中讀取文檔,卻在觸發器中處理文檔,這就是所謂的事件驅動解析方法。圖片

12.21圖片10_水印.png 

如上圖,在觸發器中,首先開始讀取文檔,而後開始逐個解析元素,每一個元素中的內容會返回到characters()方法。接着結束元素讀取,全部元素讀取完後,結束文檔解析。內存

相關文章
相關標籤/搜索