日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android开发】XML文件解析

發(fā)布時間:2024/4/14 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android开发】XML文件解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在做一個項(xiàng)目,涉及到XML文件的解析,廢話不多說,如下:



?

讀取

1 private ArrayList<Data> readXMLLocked() { 2 File file = new File(mDirPath, mFileName); 3 if (!file.exists()) { 4 return null; 5 } 6 ArrayList list = new ArrayList<Data>(); 7 InputStream in = null; 8 try { 9 in = new FileInputStream(file); 10 XmlPullParser pullParser = Xml.newPullParser(); 11 pullParser.setInput(in, "UTF-8"); 12 int event = pullParser.getEventType(); 13 while (event != XmlPullParser.END_DOCUMENT) { 14 switch (event) { 15 case XmlPullParser.START_DOCUMENT: 16 break; 17 case XmlPullParser.START_TAG: 18 String name = pullParser.getName(); 19 ILog.d(TAG, "xmlname:" + name); 20 if (TAG_ITEM.equals(name)) { 21 int count = pullParser.getAttributeCount(); 22 Data data = new Data(); 23 for (int i = 0; i < count; i++) { 24 String attName = pullParser.getAttributeName(i); 25 if (ATT_DATA.equals(attName)) { 26 data.setmWeight(Float.valueOf(pullParser.getAttributeValue(i))); 27 } else if (ATT_TIME.equals(attName)) { 28 data.setTime(Long.valueOf(pullParser.getAttributeValue(i))); 29 } 30 } 31 list.add(data); 32 } else if (TAG_VERSION.equals(name)) { 33 34 } 35 break; 36 case XmlPullParser.END_TAG: 37 break; 38 } 39 event = pullParser.next(); 40 } 41 } catch (Exception e) { 42 e.printStackTrace(); 43 return null; 44 } finally { 45 try { 46 in.close(); 47 } catch (Exception e) { 48 e.printStackTrace(); 49 } 50 } 51 return list; 52 }

保存:

1 private synchronized boolean saveXMLLocked(ArrayList<Data> list, OutputStream outStream) { 2 try { 3 XmlSerializer serializer = Xml.newSerializer(); 4 serializer.setOutput(outStream, "UTF-8"); 5 serializer.startDocument("UTF-8", true); 6 serializer.startTag(null, TAG_IWEIHT); 7 serializer.startTag(null, TAG_VERSION); 8 serializer.text(String.valueOf(DBHelper.VERSION)); 9 serializer.endTag(null, TAG_VERSION); 10 for (Data data : list) { 11 serializer.startTag(null, TAG_ITEM); 12 serializer.attribute(null, ATT_DATA, String.valueOf(data.getWeight())); 13 serializer.attribute(null, ATT_TIME, String.valueOf(data.getTime())); 14 serializer.endTag(null, TAG_ITEM); 15 } 16 serializer.endTag(null, TAG_IWEIHT); 17 serializer.endDocument(); 18 } catch (Exception e) { 19 e.printStackTrace(); 20 return false; 21 } finally { 22 try { 23 outStream.flush(); 24 outStream.close(); 25 } catch (Exception e) { 26 e.printStackTrace(); 27 } 28 } 29 return true; 30 }

對應(yīng)的XML文件的格式如下:

1 <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> 2 <iweight> 3 <version>1</version> 4 <item data="25.0" time="1482927231388" /> 5 <item data="75.0" time="1482927234989" /> 6 <item data="48.0" time="1482927238008" /> 7 </iweight>

?

轉(zhuǎn)載于:https://www.cnblogs.com/yanyojun/p/6230759.html

總結(jié)

以上是生活随笔為你收集整理的【Android开发】XML文件解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。