自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android XML讀寫(四)

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

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

使用 SAX

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

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

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. }
責(zé)任編輯:閆佳明 來源: my.eoe.cn
相關(guān)推薦

2013-06-09 12:49:15

Android開發(fā)XML讀寫XML解析

2013-06-09 13:07:23

Android開發(fā)XML讀寫XML解析

2013-06-09 10:04:35

Android開發(fā)XML讀寫XML解析

2013-06-09 12:53:05

Android開發(fā)XML讀寫XML解析

2013-06-09 10:18:29

Android開發(fā)XML讀寫XML解析

2013-06-09 10:25:56

Android開發(fā)XML讀寫XML解析

2013-06-09 11:31:13

Android開發(fā)XML讀寫XML解析

2011-11-08 10:01:53

TinyXML

2013-06-08 13:02:11

Android開發(fā)XML解析

2013-06-08 11:04:18

Android開發(fā)Pull解析XMLAndroid XML

2010-12-23 09:11:17

讀寫Android文件

2013-06-08 12:49:03

Android開發(fā)XML定義菜單

2013-06-08 13:07:54

Android開發(fā)Android UILayout XML屬

2013-06-08 13:18:50

Android開發(fā)XML構(gòu)造技巧XML解析

2010-01-25 18:22:33

Android使用XM

2013-06-08 13:37:28

Android開發(fā)XML解析Pull方式

2013-06-08 11:13:00

Android開發(fā)XML解析

2011-06-22 15:21:08

XML

2009-03-31 13:12:30

解析XMLJava

2013-06-08 13:29:27

Android開發(fā)DOM讀取XMLXML解析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)