歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android中XML解析

Android中XML解析

日期:2017/3/1 10:18:38   编辑:Linux編程

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實現都會產生以下類型的事件:

  • 讀到整個文檔(document)開始和結束時觸發事件
  • 讀到每一個XML元素(element)開始和結束時觸發事件
  • 讀到每一個XML元素裡面的內容時觸發事件

  • 處理文檔的DTD或Schema時觸發DTD或Schema事件
  • 解析錯誤時觸發錯誤事件

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解析

Copyright © Linux教程網 All Rights Reserved