最近在做一个项目,涉及到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     }

对应的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>

转载于:https://www.cnblogs.com/yanyojun/p/6230759.html

【Android开发】XML文件解析相关推荐

  1. Android开发--XML文件解析

    开发者一般会在XML文件中定义控件,其中肯定包含控件的一些属性,下面就对这些属性做一些简单的介绍: 1)android:id---这个属性是为控件提供一个标识或者是对一个控件采用引用 2)androi ...

  2. Android开发历程_18(XML文件解析)

    前言  本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML ...

  3. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  4. android基础知识13:AndroidManifest.xml文件解析【转载】

    注:本文转载于:http://blog.csdn.NET/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  5. Android中XML数据解析

    转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML ...

  6. android实现存储,Android开发实现文件存储功能

    本文实例为大家分享了Android开发实现文件存储的具体代码,供大家参考,具体内容如下 这个程序只有一个Activity, Activity中只有一个Edittext.实现的功能是在Activity销 ...

  7. dom4j工具类_基于DOM4J的XML文件解析类

    XML文件解析分四类方式:DOM解析:SAX解析:JDOM解析:DOM4J解析.其中前两种属于基础方法,是官方提供的平台无关的解析方式:后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于ja ...

  8. XML文件解析-DOM4J方式和SAX方式

    最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...

  9. XML - XML学习/XML文件解析器(C++)实现

    XML - XML学习/XML文件解析器(C++)实现 XML概述 ​ XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识.它也是元标记语言,用于定义其他与特定领域有关的, ...

  10. XML文件解析 (下载)

    XML文件解析 (下载) main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

最新文章

  1. 你认识的世界与客观世界间差了N光年
  2. Intellij IDEA打开就闪退或关闭
  3. Java中映射怎么实现_我们如何在Java 9的JShell中实现映射?
  4. overlay网络的优势
  5. 【机器学习】为什么GBDT可以超越深度学习
  6. C#一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第100位数是多少, 用递归算法实现。...
  7. 初识react(二) 实现一个简版的html+redux.js的demo
  8. oracle Interval 分区维护与管理要点
  9. linux空间满了有什么问题,Linux 空间满问题分析 [ Keep Coding ]
  10. Advanced clustering methods (Cure, Chameleon, Rock, Jarvis-Petrich)
  11. 22. jQuery 遍历 - 同胞
  12. html5 手机uc浏览器 复制链接,清除UC手机浏览器强制在页面中加入的关键词链接...
  13. 四色定理java_java – 四色定理的递归算法
  14. 错别字检测、在线文本纠错-爱校对
  15. Appdata中local是文件,系统盘下的文件目录
  16. Unity3D发布错误:could not allocate memery:system out of memery!
  17. 2018蓝桥杯校选复现3
  18. CSS3 自定义动画(animation)
  19. Windows App开发之编辑文本与绘制图形
  20. JAVA工具类(17)--Java导入导出Excel工具类ExcelUtil

热门文章

  1. CentOS7 0安装jdk + tomcat
  2. 渗透测试python编程之端口扫描
  3. cnetos6,centos7添加新网卡,系统不识别的解决办法
  4. 毕业设计之路(2)——初识TCP
  5. [Python学习记录]——Hello Python
  6. w2k telnet port change
  7. Jmeter提取响应结果中的json数据
  8. Android入门之基本布局
  9. JVM学习笔记之-运行时数据区概述及线程概述,程序计数器(PC寄存器),虚拟机栈(栈,局部变量表,操作数栈,动态连接,方法调用,方法返回地址等),本地方法接口,本地方法栈
  10. flutter web:lottie jssdk报错处理