格式化

廣告

廣告2

2014年4月6日 星期日

[Android程式範例] 讀取XML利用XML Pull Parsing解析政府的XML Open DATA

[Android程式範例] 利用XML Pull Parsing解析政府的XML Open DATA

讀寫XML

Android中有三種內建XML的解析方式,分別為Dom、Sax、Pull,其中Pull的解析方式最適合運算能力小的行動裝置。
  1. Dom解析方式: 首先一下子加載整個xml檔案然後再輪詢每個節點一個一個解析 
  2. Sax解析方式: Sax是事件驅動型解析方式,雖說是事件驅動型的好像和pull差不多,但確沒有像pull那樣提供next方法,想向下繼續解析就向下,所以Sax便缺少了靈活性、死板,包括得到資料也是要預先用模板弄好,對於特殊的資料結構還要用變數控制。
  3. Pull的解析方式: Pull驅動型解析方式,加載時不把所有的節點都加載到解析機裡,只是去一個一個節點去查找,如果是需要的節點就取出來。如果在一個XML文檔中我們只需要前面一小部分的資料,而我們卻使用SAX或DOM等方式會對整個文檔進行解析,儘管XML文檔中後面的大部分資料我們其實都不需要解析,因此這樣實際上就浪費了處理資源。因此,行動裝置android系統使用PULL方式正合適。
所以筆者我在開發xml應用也都是使用pull的方式,這裡是pull的官方網站,本篇將會介紹利用XML Pull Parsing,而使用pull在輪詢xml的時候機會是稍縱即逝的,必須隨時針對需要的資料作儲存,這時候hashmap就派上用場了,再把一組一組的hashmap物件存放在ArrayList,這樣輪詢完之後,xml就沒有利用價值了。之後,再針對UI顯示可能會用LISTVIEW,而資料就用剛剛儲存的ArrayList便可。 

這個範例是用XML Pull Parsing去讀取政府資料開放平台空氣品質即時污染指標,最後會在listview顯示各個監測站的一氧化碳濃度CO,然後用了XML格式的資料後,最大的一個感想就是要感謝發明JSON的人,比起XML來說JSON真的分析起來容易多了!!
 
如果你真的很懶可以直接下載完整專案檔,直接eclipse開始利用

沒有留言 :