Pull解析例項
pull解析是解析xml檔案最完美的方式,解決了dom解析和sax解析的問題,是谷歌所推薦的解析xml檔案方式,下面的程式碼是解析本地xml檔案:
在Activity中的程式碼
//pull解析例項
XmlPullParser pull=Xml.newPullParser();
//呼叫自定義方法
List<Shop> list=pullxml(pull);
//自定義方法
private List<Shops> pullxml(XmlPullParser pull) {
//獲得本地的xml檔案
try {
//檔案讀取
FileInputStream inputStream = new FileInputStream(file);
//把讀取的檔案輸入到pull中
//獲得事件
int type = pull.getEventType();
//判斷檔案的標籤是否是文件的最後
while(type!=XmlPullParser.END_DOCUMENT){
//獲得標籤的名字
String name = pull.getName();
case XmlPullParser.START_TAG:
//判斷名字
if(name.equals("shangpings")){
list = new ArrayList<Shops>();
}
if(name.equals("shangping"))
{
shop = new Shops();
}
if(name.equals("name"))
{
String sname = pull.nextText();
shop.setName(sname);
}
if(name.equals("price"))
{
String sprice = pull.nextText();
shop.setPrice(sprice);
}
if(name.equals("path"))
{
String spath = pull.nextText();
shop.setPath(spath);
}
break;
case XmlPullParser.END_TAG:
if(name.equals("shangping"))
{
// list.add(shop);
Cursor cursor = resolver.query(Uri.parse(url), null, null, null, null);
if(cursor.getCount()<3)
{
ContentValues values=new ContentValues();
values.put("name", shop.getName());
values.put("price", shop.getPrice());
values.put("path", shop.getPath());
resolver.insert(Uri.parse(url), values);
}
shop=null;
}
break;
}
//進行下一次
type = pull.next();
}
} catch (Exception e) {
// TODO: handle exception
}
return list;
}
返回的list就是所解析的結果
注意:pull.next()獲得下一次的位置
相關文章
- jQuery Ajax 例項 全解析jQuery
- Vue原始碼解析:Vue例項Vue原始碼
- java狀態模式例項解析Java模式
- Web安全之CSRF例項解析Web
- 解析JavaScript設計模型Iterator例項JavaScript模型
- Mybatis原始碼解析2—— 例項搭建MyBatis原始碼
- C# StartsWith 字串的例項方法解析C#字串
- SwiftUI 官方畫圖例項詳細解析SwiftUI
- Netty原始碼解析8-ChannelHandler例項之CodecHandlerNetty原始碼
- Argo 安裝和 workflow 例項配置檔案解析Go
- Spring Bean 的例項化過程原始碼解析SpringBean原始碼
- Android外掛化快速入門與例項解析(VirtualApk)AndroidAPK
- C語言例項解析精粹學習筆記——19C語言筆記
- MyCat分片:水平拆分例項解析和程式碼實現!
- php例項化物件的例項方法PHP物件
- Spring原始碼分析(六)SpringAOP例項及標籤的解析Spring原始碼
- 透過Span實現高效能陣列,例項解析陣列
- Python scrapy增量爬取例項及實現過程解析Python
- 通俗地說決策樹演算法(二)例項解析演算法
- Fabric1.4原始碼解析:鏈碼例項化過程原始碼
- Android 高階UI9 Canvas save和restore例項解析AndroidUICanvasREST
- OkHttpClient例項HTTPclient
- unittest例項
- jQuery 例項jQuery
- Python 爬蟲十六式 - 第八式:例項解析-全書網Python爬蟲
- 手把手教你使用OpenCV庫(附例項、Python程式碼解析)OpenCVPython
- Activiti的流程例項【ProcessInstance】與執行例項【Execution】
- Vue 原始碼解析(例項化前) – 初始化全域性API(二)Vue原始碼API
- Vue 原始碼解析(例項化前) - 初始化全域性API(二)Vue原始碼API
- Vue 原始碼解析(例項化前) - 初始化全域性API(一)Vue原始碼API
- Vue 原始碼解析(例項化前) – 初始化全域性API(一)Vue原始碼API
- Vue 原始碼解析(例項化前) – 初始化全域性API(三)Vue原始碼API
- C語言列舉型別所佔位元組大小例項解析C語言型別
- 詳解樸素貝葉斯的來源,原理以及例項解析
- Vue 原始碼解析(例項化前) - 初始化全域性API(三)Vue原始碼API
- 基於大量圖片與例項深度解析Netty中的核心元件Netty元件
- 例項化list
- msfvenom使用例項
- 雙層 for 例項