国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

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

2019-12-12 02:23:56
字體:
來源:轉載
供稿:網(wǎng)友

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

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

<?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>

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

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

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)生第一個事件   while(event!=XmlPullParser.END_DOCUMENT){ //如果不是文檔結束事件     switch(event){      case XmlPullParser.START_DOCUMENT:        persons=new ArrayList<Person>(); //在文檔的開始實例化集合        break;      case XmlPullParser.START_TAG:        String name=parser.getName();//取得當前解析器指向的元素名稱        if("person".equals(name)){          p=new Person();          p.setId(parser.getAttributeValue(0));        }        if(p!=null){          if("name".equals(name)){            p.setName(parser.nextText()); //取得當前解析器指向的下一個元素的文本節(jié)點          }          if("age".equals(name)){            p.setAge(Integer.parseInt(parser.nextText()));          }        }        break;      case XmlPullParser.END_TAG:        if("person".equals(parser.getName())){ //person標簽結束就把數(shù)據(jù)存入集合          persons.add(p);          //p=null;        }        break;     }     event=parser.next();   }   return persons; }}

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

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

在線XML/JSON互相轉換工具:
http://tools.VeVB.COm/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.VeVB.COm/code/xmlformat

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

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

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

希望本文所述對大家Android程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 芜湖县| 镇康县| 泗水县| 探索| 朔州市| 陈巴尔虎旗| 嘉义市| 仁怀市| 石首市| 田林县| 德江县| 漳平市| 灵川县| 尼木县| 兖州市| 阳谷县| 伊金霍洛旗| 甘泉县| 温泉县| 石门县| 漠河县| 修水县| 澄江县| 屏东县| 根河市| 遂溪县| 锡林郭勒盟| 惠来县| 年辖:市辖区| 阿拉善盟| 新河县| 嘉峪关市| 永德县| 潜山县| 乌恰县| 张掖市| 蚌埠市| 东山县| 垫江县| 阳江市| 东乡县|