成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android xml讀寫(八)

移動開發 Android
pull 解析器的運行方式與 SAX 解析器相似。它提供了類似的事件(開始元素和結束元素),但您需要使用 de >(parser.next()de > 提取它們。事件將作為數值代碼被發送,因此您可以使用一個簡單 case-switch。

java代碼:

  1. case XmlPullParser.END_TAG: 
  2. name = parser.getName(); 
  3. if (name.equalsIgnoreCase(ITEM) && 
  4. currentMessage != null){ 
  5. messages.add(currentMessage); 
  6. else if (name.equalsIgnoreCase(CHANNEL)){ 
  7. done = true
  8. break
  9. eventType = parser.next(); 
  10. catch (Exception e) { 
  11. throw new RuntimeException(e); 
  12. return messages; 

pull 解析器的運行方式與 SAX 解析器相似。它提供了類似的事件(開始元素和結束元素),但您需要使用 de >(parser.next()de > 提取它們。事件將作為數值代碼被發送,因此您可以使用一個簡單 case-switch。注意,解析并未像 SAX 解析那樣監聽元素的結束,而是在開始處完成了大部分處理。在 清單 10 的代碼中,當某個元素開始時,您可以調用 de >parser.nextText()de > 從 XML 文檔中提取所有字符數據。還需注意,您設置了一個標記(布爾變量 de >donede >)來確定何時到達感興趣內容的結束部分。這允許您提早停止讀取 XML 文檔,因為您知道代碼將不會關心文檔的其余部分。這有時非常實用,特別是當您只需要訪問一小部分 XML 文檔時。通過盡快停止解析,您可以極大地減少解析時間。這種優化對于連接速度較慢的移動設備尤為重要。pull 解析器可以提供一些性能優勢以及易用性。它還可以用于編寫 XML。

目前為止,我一直專注于通過 Internet 解析 XML。但是,有時您的應用程序可能需要將 XML 發送到遠程服務器。顯然,您可以只使用一個 de >StringBuilderde > 來創建 XML 字符串。另一種備選方法來自 清單 11 中的 Pull 解析器。

清單 11. 使用 pull 解析器編寫 XML

  1. private String writeXml(List< Message > messages){ 
  2. XmlSerializer serializer = Xml.newSerializer(); 
  3. StringWriter writer = new StringWriter(); 
  4. try { 
  5. serializer.setOutput(writer); 
  6. serializer.startDocument("UTF-8"true); 
  7. serializer.startTag("""messages"); 
  8. serializer.attribute("""number", String.valueOf(messages.size())); 
  9. for (Message msg: messages){ 
  10. serializer.startTag("""message"); 
  11. serializer.attribute("""date", msg.getDate()); 
  12. serializer.startTag("""title"); 
  13. serializer.text(msg.getTitle()); 
  14. serializer.endTag("""title"); 
  15. serializer.startTag("""url"); 
  16. serializer.text(msg.getLink().toExternalForm()); 
  17. serializer.endTag("""url"); 
  18. serializer.startTag("""body"); 
  19. serializer.text(msg.getDescription()); 
  20. serializer.endTag("""body"); 
  21. serializer.endTag("""message"); 
  22. serializer.endTag("""messages"); 
  23. serializer.endDocument(); 
  24. return writer.toString(); 
  25. catch (Exception e) { 
  26. throw new RuntimeException(e); 

de >XmlSerializerde > 類是 前一部分 所使用的 de >XmlPullParserde > 包的一部分。它沒有提取事件,而是將它們推出到數據流或編寫程序中。在本例中,它僅僅將事件推送到了一個 de >java.io.StringWriterde > 實例中。它提供了一個直觀的 API,通過各種方法開始和結束文檔、處理元素以及添加文本或屬性。這是 de >StringBuilderde > 的一種出色的替換方案,因為它可以更加輕松地確保您的 XML 具有良好結構。

責任編輯:閆佳明 來源: my.eoe.cn
相關推薦

2013-06-09 10:04:35

Android開發XML讀寫XML解析

2013-06-09 12:49:15

Android開發XML讀寫XML解析

2013-06-09 12:53:05

Android開發XML讀寫XML解析

2013-06-09 10:18:29

Android開發XML讀寫XML解析

2013-06-09 10:25:56

Android開發XML讀寫XML解析

2013-06-09 10:37:53

Android開發XML讀寫XML解析

2013-06-09 11:31:13

Android開發XML讀寫XML解析

2011-11-08 10:01:53

TinyXML

2025-01-13 09:00:00

Python文件讀寫代碼

2013-06-08 13:02:11

Android開發XML解析

2013-06-08 11:04:18

Android開發Pull解析XMLAndroid XML

2010-12-23 09:11:17

讀寫Android文件

2013-06-08 12:49:03

Android開發XML定義菜單

2013-06-08 13:07:54

Android開發Android UILayout XML屬

2013-06-08 13:18:50

Android開發XML構造技巧XML解析

2013-06-07 13:20:16

Android開發開源游戲引擎游戲開發

2014-07-17 11:10:19

Android開源游戲引擎

2011-05-31 15:45:38

Android 游戲引擎 開源

2010-01-25 18:22:33

Android使用XM

2013-06-08 13:37:28

Android開發XML解析Pull方式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产一区二区三区久久 | 日韩久草| 婷婷国产一区 | 欧美日本高清 | 国产高清一区二区三区 | 一区二区三区日 | 蜜桃五月天 | 色天天综合 | 日韩欧美视频免费在线观看 | 激情欧美一区二区三区中文字幕 | 国产在线精品一区 | 成人福利 | 老司机狠狠爱 | 国产精品揄拍一区二区久久国内亚洲精 | 日韩一区二区三区视频在线观看 | 色综久久| 天天干天天爱天天操 | 成人久久一区 | 亚洲免费影院 | 午夜影院网站 | 羞羞的视频免费在线观看 | 国产一区二区三区久久久久久久久 | 欧美日韩一区二区在线观看 | 欧美三级视频 | 国产精品视频在线观看 | 成人av电影免费在线观看 | 国产欧美在线观看 | 成人欧美一区二区 | 黄色免费观看 | 欧美极品视频 | 一区二区精品视频 | 欧美日韩精品影院 | 久久夜视频 | 黄色毛片黄色毛片 | 国产三区在线观看视频 | 在线播放一区二区三区 | 国产99久久 | 99视频免费 | 日韩欧美在线一区二区 | 亚洲天堂久久 | 久久久久久亚洲精品 |