亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android編程使用pull方式解析xml格式文件的方法詳解

 更新時(shí)間:2017年07月25日 11:57:42   作者:青蛙小王子  
這篇文章主要介紹了Android編程使用pull方式解析xml格式文件的方法,結(jié)合實(shí)例形式分析了Android調(diào)用pull解析器操作xml格式文件的步驟與相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Android編程使用pull方式解析xml格式文件的方法。分享給大家供大家參考,具體如下:

上次已經(jīng)說過使用Android sax解析xml,實(shí)際上還可以使用pull解析xml.這樣的方式效率也是比較高的。pull不僅可以在Android上使用也可以用在javaee里面,需要的就是pull的jar包。這次的xml也使用上次的那個(gè),如下所示

<?xml version="1.0" encoding="UTF-8"?>
<persons>
 <person id="01">
   <name>will</name>
   <age>21</age>
 </person>
 <person id="02">
   <name>will2</name>
   <age>22</age>
 </person>
</persons>

下面就來寫一個(gè)解析xml的類,解析的流程如下

(1)取得pull解析器
(2)設(shè)置解析器的輸入流
(3)產(chǎn)生第一個(gè)事件
(4)開始解析
(5)解析結(jié)束

package org.lxh.impl;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.lxh.vo.Person;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.util.Log;
import android.util.Xml;
public class Parse2 {
 public List<Person> getPersons(InputStream in) throws Throwable{
   Person p=null;
   List<Person> persons=null;
   XmlPullParser parser=Xml.newPullParser();
   parser.setInput(in, "UTF-8");
   int event=parser.getEventType();//產(chǎn)生第一個(gè)事件
   while(event!=XmlPullParser.END_DOCUMENT){ //如果不是文檔結(jié)束事件
     switch(event){
      case XmlPullParser.START_DOCUMENT:
        persons=new ArrayList<Person>(); //在文檔的開始實(shí)例化集合
        break;
      case XmlPullParser.START_TAG:
        String name=parser.getName();//取得當(dāng)前解析器指向的元素名稱
        if("person".equals(name)){
          p=new Person();
          p.setId(parser.getAttributeValue(0));
        }
        if(p!=null){
          if("name".equals(name)){
            p.setName(parser.nextText()); //取得當(dāng)前解析器指向的下一個(gè)元素的文本節(jié)點(diǎn)
          }
          if("age".equals(name)){
            p.setAge(Integer.parseInt(parser.nextText()));
          }
        }
        break;
      case XmlPullParser.END_TAG:
        if("person".equals(parser.getName())){ //person標(biāo)簽結(jié)束就把數(shù)據(jù)存入集合
          persons.add(p);
          //p=null;
        }
        break;
     }
     event=parser.next();
   }
   return persons;
 }
}

這樣的解析比起sax應(yīng)該比較簡單了,單元測(cè)試也用昨天那個(gè)只是少做了修改。下面看一下效果截圖

PS:這里再為大家提供幾款關(guān)于xml操作的在線工具供大家參考使用:

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.jb51.net/code/xmlformat

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android操作XML數(shù)據(jù)技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android資源操作技巧匯總》、《Android文件操作技巧匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android編程實(shí)現(xiàn)等比例顯示圖片的方法

    Android編程實(shí)現(xiàn)等比例顯示圖片的方法

    這篇文章主要介紹了Android編程實(shí)現(xiàn)等比例顯示圖片的方法,實(shí)例分析了Android等比例縮放圖片的具體步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • 詳解Android原生json和fastjson的簡單使用

    詳解Android原生json和fastjson的簡單使用

    本文主要介紹了Android原生json和fastjson的簡單使用,具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • Android UI實(shí)現(xiàn)底部切換標(biāo)簽fragment

    Android UI實(shí)現(xiàn)底部切換標(biāo)簽fragment

    這篇文章主要為大家詳細(xì)介紹了Android UI實(shí)現(xiàn)底部切換標(biāo)簽的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Listview加載的性能優(yōu)化是如何實(shí)現(xiàn)的

    Listview加載的性能優(yōu)化是如何實(shí)現(xiàn)的

    在android開發(fā)中Listview是一個(gè)很重要的組件,它以列表的形式根據(jù)數(shù)據(jù)的長自適應(yīng)展示具體內(nèi)容,用戶可以自由的定義listview每一列的布局,接下來通過本文給大家介紹Listview加載的性能優(yōu)化是如何實(shí)現(xiàn)的,對(duì)listview性能優(yōu)化相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Flutter 創(chuàng)建私有公共插件的步驟

    Flutter 創(chuàng)建私有公共插件的步驟

    flutter pub中有很多開源庫,如dio、provider等,這些都是package,直接在pubspec中引入就可以在工程中使用。看下如何自己進(jìn)行創(chuàng)建
    2021-05-05
  • Android 有效的解決內(nèi)存泄漏的問題實(shí)例詳解

    Android 有效的解決內(nèi)存泄漏的問題實(shí)例詳解

    這篇文章主要介紹了Android 有效的解決內(nèi)存泄漏的問題的相關(guān)資料,這里舉例說明,如何實(shí)現(xiàn)解決內(nèi)存泄漏,需要的朋友可以參考下
    2016-11-11
  • Android利用zxing快速集成二維碼掃描的實(shí)例教程

    Android利用zxing快速集成二維碼掃描的實(shí)例教程

    最近二維碼真是越來越火了,隨便電視上、網(wǎng)絡(luò)上、商場(chǎng)里,到處都是二維碼,所以下面這篇文章我們就來給大家介紹關(guān)于Android利用zxing快速集成二維碼掃描的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起看看吧。
    2017-09-09
  • Android中ConstraintLayout約束布局的最全詳細(xì)解析

    Android中ConstraintLayout約束布局的最全詳細(xì)解析

    ConstraintLayout是Google在Google?I/O?2016大會(huì)上發(fā)布的一種新的布局容器(ViewGroup),它支持以靈活的方式來放置子控件和調(diào)整子控件的大小,下面這篇文章主要給大家介紹了關(guān)于Android中ConstraintLayout約束布局詳細(xì)解析的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • GridView實(shí)現(xiàn)桌面圖標(biāo)顯示案例

    GridView實(shí)現(xiàn)桌面圖標(biāo)顯示案例

    這篇文章主要為大家詳細(xì)介紹了GridView實(shí)現(xiàn)桌面圖標(biāo)顯示案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android使用Intent.ACTION_SEND分享圖片和文字內(nèi)容的示例代碼

    Android使用Intent.ACTION_SEND分享圖片和文字內(nèi)容的示例代碼

    這篇文章主要介紹了Android使用Intent.ACTION_SEND分享圖片和文字內(nèi)容的示例代碼的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,一起跟隨小編過來看看吧
    2018-05-05

最新評(píng)論