用SAX(simple API for
XML)解析方式漸進式掃描文檔,可以在任一時刻停止解析,但是操作複雜、使用其SAX向文檔添加或者刪除內容比較困難。它既是一種介面,也是一個軟體包。
SAX工作原理:對文檔進行順序掃描,當掃描到文檔開始與結束、元素開始與結束,產生事件通知事件處理函數,由事件處理函數做相應動作,然後繼續同樣的掃描,直至文檔結束。文檔處理事件、元素事件、DTD或Schema事件、錯誤事件SAX介面:ContentHandler、ErrorHandler、DTDHandler、EntityResolver(1)建立事件處理常式MyContentHandler類繼承DefaultHandler實現其中的方法:startDocument、endDocument、
startElement(String(
命名空間),String(不包含首碼的標籤名),String(包含首碼的標籤名),Attributes(屬性))、
endElement(String,String,String,Attributes)、characters(char[](讀取的標籤所有內
容),int(從哪一位開始讀取),int(讀取內容的長度))(2)建立SAX解析器SAXParseFactory factory = SAXParseFactory.newIntance();XMLReader reader = factory.newSAXParse().getXMLReader();(3)將事件處理常式分配給解析器reader.setContentHandler(new
MyContentHandler());//設定內容處理器,其中MyContentHandler類中定義介面中的各種方法(4)對文檔進行解析,將每個事件發送給處理常式reader.parse(new InputSourse(new
StringReader(resultStr)));//將讀取的資料直接放到StringReader對象中,StringReader專門用於以流的方式讀取字串resultStr為網路上下載的檔案被儲存為String類型