XML全稱叫“可擴展標記語言”,和HTML類似,和HTML所不同的是XML的標簽是自定義的。
XML的兩種解析方式比較
通常有兩種常見的方式來解析XML:DOM解析和SAX解析。
DOM解析是把XML看成一棵樹,有根節點,子節點。DOM解析XML文檔的時候,首先要把XML文檔全部裝載的內存裡面,然後解析成一棵樹,然後在這棵樹上操作,可以取節點內容以及添加和刪除節點。
DOM的優點:操作簡單方便
DOM的缺點:如果XML文檔比較大,性能就存在問題了
SAX(Simple API for XML)解析,SAX是逐行解析,而且可以隨時停止解析(比如說我讀XML讀到一半就找到了想要的信息,那麼就可以停止解析了),
DOM的優點:逐行解析,隨時可以停止。因此提高了性能,適合手機開發
DOM的缺點:操作比DOM復雜,不可以添加和刪除節點
SAX的工作原理
SAX的工作原理簡單的說就是對文檔進行順序掃描,當掃描的文檔(document)開始和結束,元素(element)開始和結束等地方通知事件處理函數,由事件處理函數做相應的操作,然後繼續掃描,直到文檔結束。
大多數SAX實現都會產生以下類型的事件:
讀到每一個XML元素裡面的內容時觸發事件
SAX解析文檔過程
對於如下文檔
<doc>
<para>HelloWorld!</para>
</doc>
在解析文檔的過程中會產生一下事件
Start document
Start element:doc
End element:doc
Start element:para
Characters:Hello World!
End element:para
End document
ContentHandler接口
ContentHandler提供了解析XML文檔是所觸發的一系列事件方法
l void startDocument()
l void endDocument()
l void startElement(String uri, String localName, string qName,Attributes atts)
l void endElement(String uri, String localName, string qName)
l void characters(char[] ch, int start, int length)
下面通過代碼理解
Android中XML解析。一個很簡單的例子,用SAX的方法解析
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2012年資料/6月/28日/Android中XML解析