使用sax解析xml
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
在java中,解析xml文檔的方式有兩種原生的方法,分別是:Dom解析和Sax解析。
Dom解析功能很強(qiáng)大,可增刪改查,操作時(shí)將xml文檔以文檔對(duì)象的方式讀取到內(nèi)存中,適用于小文檔。
Sax解析是從頭到尾每一行每一個(gè)元素讀取內(nèi)容,修改較為不便,但適用于只讀的大文檔。
我們主要講解Sax解析,其余放在后面。
Sax采用事件驅(qū)動(dòng)的方式解析文檔。簡(jiǎn)單點(diǎn)說,如同在電影院看電影一樣,從頭到尾看一遍就完了,不能回退(Dom可來來回回讀取)。
在看電影的過程中,每遇到一個(gè)情節(jié),一段淚水,一次擦肩,你都會(huì)調(diào)動(dòng)大腦和神經(jīng)去接收或處理這些信息。同樣,在Sax的解析過程中,讀取到文檔開頭、結(jié)尾,元素的開頭和結(jié)尾都會(huì)觸發(fā)一些回調(diào)方法,你可以在這些回調(diào)方法中進(jìn)行相應(yīng)事件處理。這四個(gè)方法是:startDocument() 、?endDocument()、 startElement()、 endElement。此外,光讀取到節(jié)點(diǎn)處是不夠的,我們還需要characters()方法來仔細(xì)處理元素內(nèi)包含的內(nèi)容,將這些回調(diào)方法集合起來,便形成了一個(gè)類,這個(gè)類也就是我們需要的觸發(fā)器。
一般從Main方法中讀取文檔,卻在觸發(fā)器中處理文檔,這就是所謂的事件驅(qū)動(dòng)解析方法。
?
如上圖,在觸發(fā)器中,首先開始讀取文檔,然后開始逐個(gè)解析元素,每個(gè)元素中的內(nèi)容會(huì)返回到characters()方法。接著結(jié)束元素讀取,所有元素讀取完后,結(jié)束文檔解析。
?
?
轉(zhuǎn)載于:https://my.oschina.net/u/2971691/blog/809531
總結(jié)
以上是生活随笔為你收集整理的使用sax解析xml的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux自学_shell脚本for详解
- 下一篇: Linux源码Kconfig文件语法分析