SAX 解析XML檔案:將XML轉換成Java物件
本部落格介紹的是解析本地XML檔案,解析網路上的XML 本文寫得比較簡略,實際上專案應用更多的是解析網上的xml資源
使用SAX 處理XML需要一個Handler 物件,一般繼承org.xml.sax,helpers.DefaultHandler 作為Handler 物件
先看示意圖
SAX解析XML檔案通常需要5個分析事件,也可理解為5步驟:
startDocument () ————————> 開始分析XML檔案
↓
startElement() ————————> 開始處理XML元素
↓
characters() ————————> 儲存XML元素的文字
↓
endElement() ————————> 結束處理 XML檔案
↓
endDocument() ————————> 處理結束XML檔案
要執行本示例,需要將ch06_xml工程下raw目錄中的XML檔案通過DDMS透檢視中匯入到模擬器的SD卡中,這裡是raw目錄下的product1.xml,product2.xml檔案
解析網上的xml檔案 主要程式碼如下:
try {
URL url = new URL(targetUrl);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
DataUtil dataUtil = new DataUtil();
xr.setContentHandler(dataUtil);
dataUtil.getV6Info(null, this);
xr.parse(new InputSource(url.openStream()));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}catch(Exception ex){}
以下是一個線上解析XML的示例
示意圖如下