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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
AndroidXML讀寫(四)

如示例所示,一個 de >ITEMde > 對應(yīng)于一個 de >Messagede > 實例。項目的子節(jié)點(de >TITLEde >、de >LINKde > 等)對應(yīng)于 de >Messagede > 實例的屬性?,F(xiàn)在,您已經(jīng)對提要有了一定的認(rèn)識,并且已經(jīng)創(chuàng)建了所有常用部分,接下來看看如何使用 Android 上可用的各種技術(shù)來解析這個提要。您將從 SAX 開始。

我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、瑪沁ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的瑪沁網(wǎng)站制作公司

使用 SAX

在 Java 環(huán)境中,當(dāng)您需要一個速度快的解析器并且希望***限度減少應(yīng)用程序的內(nèi)存占用時,通??梢允褂?SAX API。這非常適用于運行 Android 的移動設(shè)備。您可以在 Java 環(huán)境中照原樣使用 SAX API,在 Android 上運行它不需要做任何修改。顯示了 de >FeedParserde > 接口的一個 SAX 實現(xiàn)。

SAX 實現(xiàn)

java代碼:

 
 
  1. public class SaxFeedParser extends BaseFeedParser { 
  2. protected SaxFeedParser(String feedUrl){ 
  3. super(feedUrl); 
  4. public List< Message > parse() { 
  5. SAXParserFactory factory = SAXParserFactory.newInstance(); 
  6. try { 
  7. SAXParser parser = factory.newSAXParser(); 
  8. RssHandler handler = new RssHandler(); 
  9. parser.parse(this.getInputStream(), handler); 
  10. return handler.getMessages(); 
  11. } catch (Exception e) { 
  12. throw new RuntimeException(e); 

如果您以前使用過 SAX,那么這對您肯定非常熟悉。與任何 SAX 實現(xiàn)相同,大多數(shù)細節(jié)都在 SAX 處理程序中。在分解 XML 文檔時,處理程序從 SAX 解析器接收事件。在本例中,您創(chuàng)建了一個新的名稱為 de >RssHandlerde > 的類,并將它注冊為解析器的處理程序,如 所示。

SAX 處理程序

 
 
  1. import static org.developerworks.android.BaseFeedParser.*; 
  2. public class RssHandler extends DefaultHandler{ 
  3. private List< Message > messages; 
  4. private Message currentMessage; 
  5. private StringBuilder builder; 
  6. public List< Message > getMessages(){ 
  7. return this.messages; 
  8. @Override 
  9. public void characters(char[] ch, int start, int length) 
  10. throws SAXException { 
  11. super.characters(ch, start, length); 
  12. builder.append(ch, start, length); 
  13. @Override 
  14. public void endElement(String uri, String localName, String name) 
  15. throws SAXException { 
  16. super.endElement(uri, localName, name); 
  17. if (this.currentMessage != null){ 
  18. if (localName.equalsIgnoreCase(TITLE)){ 
  19. currentMessage.setTitle(builder.toString()); 
  20. } else if (localName.equalsIgnoreCase(LINK)){ 
  21. currentMessage.setLink(builder.toString()); 
  22. } else if (localName.equalsIgnoreCase(DESCRIPTION)){ 
  23. currentMessage.setDescription(builder.toString()); 
  24. } else if (localName.equalsIgnoreCase(PUB_DATE)){ 
  25. currentMessage.setDate(builder.toString()); 
  26. } else if (localName.equalsIgnoreCase(ITEM)){ 
  27. messages.add(currentMessage); 
  28. builder.setLength(0); 
  29. @Override 
  30. public void startDocument() throws SAXException { 
  31. super.startDocument(); 
  32. messages = new ArrayList< Message >(); 
  33. builder = new StringBuilder(); 
  34. @Override 
  35. public void startElement(String uri, String localName, String name,Attributes attributes) throws SAXException { 
  36. super.startElement(uri, localName, name, attributes); 
  37. if (localName.equalsIgnoreCase(ITEM)){ 
  38. this.currentMessage = new Message(); 
  39. }

網(wǎng)頁標(biāo)題:AndroidXML讀寫(四)
鏈接URL:http://m.5511xx.com/article/cocohoh.html