日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android中XML解析模塊的使用方法

在音樂跟電視的項目中,很多都是使用了典型的按照接口規(guī)范的流程處理方式。

張灣網(wǎng)站建設公司成都創(chuàng)新互聯(lián),張灣網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為張灣上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的張灣做網(wǎng)站的公司定做!

客戶端發(fā)送一個request請求,服務端就會以xml的數(shù)據(jù)格式返回一個response響應。但是在客戶端界面展示xml數(shù)據(jù)并不是那么人性化與現(xiàn)實,所以在此之前,會對xml進行數(shù)據(jù)解析??v觀軟終端的大部分項目中,在客戶端進行數(shù)據(jù)解析采用的是SAX(Simple API for XML),這是有道理的。

SAX的工作原理簡單地說就是對文檔進行順序掃描,當掃描到文檔(document)開始與結(jié)束、元素(element)開始與結(jié)束、文檔(document)結(jié)束等地方時通知事件處理函數(shù),由事件處理函數(shù)做相應動作,然后繼續(xù)同樣的掃描,直至文檔結(jié)束。

大多數(shù)SAX實現(xiàn)都會產(chǎn)生以下類型的事件

在文檔內(nèi)每一XML元素接受解析的前后觸發(fā)元素事件。

在文檔的開始和結(jié)束時觸發(fā)文檔處理事件。

在處理文檔的DTD或Schema時產(chǎn)生DTD或Schema事件。

任何元數(shù)據(jù)通常都由單獨的事件交付。

產(chǎn)生錯誤事件用來通知主機應用程序解析錯誤。

對于如下文檔:

 
 
  1. Hello, world!
  2. sax parse xml

在解析文檔的過程中會產(chǎn)生如下一系列事件:

 
 
  1. start document
  2. start element: doc
  3. start element: para
  4. characters: Hello, world!
  5. end element: para
  6. stat element:title
  7. characters:sax parse xml
  8. end element:title
  9. end element: doc
  10. end document

一個完整的SAX處理過程涉及如下幾個步驟:

(1)創(chuàng)建事件處理程序。

(2)創(chuàng)建SAX解析器。

(4)對文檔進行解析,將每個事件發(fā)送給處理程序。

(3)將事件處理程序分配給解析器。

SAX的優(yōu)缺點

SAX的優(yōu)點:

解析速度快

ContentHandler對象可以是多個

內(nèi)存消耗少

SAX的缺點:

必須實現(xiàn)事件處理程序

不能修改文檔

不能隨機訪問

SAX解析器對文檔的解析過程是一種邊解析邊執(zhí)行的過程

SAX解析器對文檔的解析過程中,無需把整個文檔都加載到內(nèi)存中

使用SAX解析器時,可以注冊多個ContentHandler對象,并行接收事件

SAX解析器對文檔的解析是順序進行的

使用SAX對文檔進行解析,只能訪問文檔內(nèi)容,無法做到向文檔中添加節(jié)點,更不能刪除和修改文檔中的內(nèi)容。

SAX的常用接口介紹

ContentHandler接口

ContentHandler是Java類包中一個特殊的SAX接口,位于org.xml.sax包中。該接口封裝了一些對事件處理的方法,當XML解析 器開始解析XML輸入文檔時,它會遇到某些特殊的事件,比如文檔的開頭和結(jié)束、元素開頭和結(jié)束、以及元素中的字符數(shù)據(jù)等事件。當遇到這些事件時,XML解 析器會調(diào)用ContentHandler接口中相應的方法來響應該事件。

ContentHandler接口的方法有以下幾種:

 
 
  1. void startDocument()
  2. void characters(char[ ] ch, int start, int length)
  3. void endDocument()
  4. void startElement(String uri, String localName, String qName, Attributes atts)
  5. void endElement(String uri, String localName, String qName)

DTDHandler接口

DTDHandler用于接收基本的DTD相關(guān)事件的通知。該接口位于org.xml.sax包中。此接口僅包括DTD事件的注釋和未解析的實體聲明部 分。SAX解析器可按任何順序報告這些事件,而不管聲明注釋和未解析實體時所采用的順序;但是,必須在文檔處理程序的startDocument()事件 之后,在第一個startElement()事件之前報告所有的DTD事件。

DTDHandler接口包括以下兩個方法:

 
 
  1. void startDocumevoid notationDecl(String name, String publicId, String systemId) nt()
  2. void unparsedEntityDecl(String name, String publicId, String systemId, String notationName)

接收注釋聲明事件的通知

接收未解析的實體聲明事件的通知

EntityResolver接口

EntityResolver接口是用于解析實體的基本接口,該接口位于org.xml.sax包中。

該接口只有一個方法,如下

 
 
  1. public InputSource resolveEntity(String publicId, String systemId) 

允許應用程序解析外部實體。并返回一個InputSource類的對象或者為null,用于讀取實體信息

解析器將在打開任何外部實體前調(diào)用此方法。此類實體包括在DTD內(nèi)引用的外部DTD子集和外部參數(shù)實體和在文檔元素內(nèi)引用的外部通用實體等。如果SAX應用程序需要實現(xiàn)自定義處理外部實體,則必須實現(xiàn)此接口。

ErrorHandler接口

ErrorHandler接口是SAX錯誤處理程序的基本接口。如果SAX應用程序需要實現(xiàn)自定義的錯誤處理,則它必須實現(xiàn)此接口,然后解析器將通過此接口報告所有的錯誤和警告。

該接口的方法如下:

 
 
  1. void error(SAXParseException exception)
  2. void fatalError(SAXParseException exception)
  3. 接收可恢復的錯誤通知
  4. 接收不可恢復的錯誤通知
  5. void warning(SAXParseException exception)
  6. 接收警告的通知

網(wǎng)站題目:Android中XML解析模塊的使用方法
當前URL:http://m.5511xx.com/article/coddoec.html