参考:http://blog.csdn.net/pi9nc/article/details/9320413

XML文件的解析,代码:

 public void click(View v) {
InputStream is = getClassLoader().getResourceAsStream("weather.xml");
//获取到XMLPullParse接口的对象
XmlPullParser xpp = Xml.newPullParser();
try {
//设置输出流及编码
xpp.setInput(is, "utf-8");
//获取到节点的类型,START_DOCUMENT=0,END_DOCUMENT=1,START_TAG=2,END_TAG=3,TEXT=4
int type = xpp.getEventType();
CityBean city = null;
//当前节点不是END_DOCUMENT的话,就一直循环遍历XML文件
while (type!=XmlPullParser.END_DOCUMENT) {
//使用switch判断type类型
switch (type) {
//type为2的情况下,进入START_TAG
case XmlPullParser.START_TAG:
//获取当前节点的名字是weather
if ("weather".equals(xpp.getName())) {
//city的集合
cityList=new ArrayList<>();
}else if ("city".equals(xpp.getName())) {
city = new CityBean();
}else if ("name".equals(xpp.getName())) {
String name = xpp.nextText();
city.setName(name);
}else if ("temp".equals(xpp.getName())) {
String temp = xpp.nextText();
city.setTemp(temp);
}else if ("pm".equals(xpp.getName())) {
String pm = xpp.nextText();
city.setPm(pm);
}
break;
case XmlPullParser.END_TAG:
if ("city".equals(xpp.getName())) {
cityList.add(city);
}
break;
default:
break;
}
//把解析的指针移动到下一个节点
type=xpp.next();
}
for (CityBean c1 : cityList) {
System.out.println(c1.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}

XML文件的创建,代码:

 File file = new File(Environment.getExternalStorageDirectory(),"info3.xml");
XmlSerializer xml = Xml.newSerializer();
try {
FileOutputStream fos = new FileOutputStream(file);
xml.setOutput(fos, "utf-8");
xml.startDocument("utf-8", true);
xml.startTag(null, "message");
for (SmsBean smsBean : smsList) {
xml.startTag(null, "sms");
xml.startTag(null, "body");
xml.text(smsBean.getBody());
xml.endTag(null, "body");
xml.startTag(null, "address");
xml.text(smsBean.getAddress());
xml.endTag(null, "address");
xml.startTag(null, "date");
xml.text(smsBean.getDate());
xml.endTag(null, "date");
xml.startTag(null, "type");
xml.text(smsBean.getType());
xml.endTag(null, "type");
xml.endTag(null, "sms");
}
xml.endTag(null, "message");
xml.endDocument();
fos.close();
} catch (Exception e) { e.printStackTrace();
}

Android开发之XML的创建和解析的更多相关文章

  1. [置顶] Android开发之XML文件的解析

    Android系统开发之XML文件的解析 我们知道Http在网络传输中的数据组织方式有三种分别为:XML方式.HTML方式.JSON方式.其中XML为可扩展标记语言,如下: <?xml vers ...

  2. Android开发之Activity的创建跳转及传值

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介 ...

  3. Android开发之JNI(一)--HelloWorld及遇到的错误解析

    Android开发之JNI(一)--HelloWorld及遇到的错误解析 1.NDK环境搭建    參考http://blog.csdn.net/xiaoliouc/article/details/8 ...

  4. Android开发之旅: Intents和Intent Filters(理论部分)

    引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...

  5. Android 开发之旅:深入分析布局文件&又是“Hello World!”

    http://www.cnblogs.com/skynet/archive/2010/05/20/1740277.html 引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实 ...

  6. Android开发之旅4:应用程序基础及组件

    引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用 ...

  7. 【Android UI】Android开发之View的几种布局方式及实践

    引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...

  8. [置顶] Android开发之MediaPlayerService服务详解(一)

    前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThre ...

  9. android开发之Animations的使用(二)

    android开发之Animations的使用(二) 本博文主要讲述的是android开发中的animation动画效果的使用,和上一篇博文不同的是,此次四种动画效果,主要使用的是xml文件实现的,提 ...

随机推荐

  1. 活动图 Activity Diagram

    活动图 可通过一系列操作将业务流程或软件进程以工作流的形式显示出来.这些操作可以由人.软件组件或计算机来执行. 使用活动图可以描述多种类型的流程,如下: 1.用户和您的系统之间的业务流程或工作流. 2 ...

  2. ubuntu12.04samba服务器配置,亲测可用(转)

    系统平台:VMware Workstation9.0 + ubuntu12.04 首先要解决windows和linux网络连接问题:在VMware Workstation9.0 “设置” 选项中,设置 ...

  3. Ubuntu系统下USB转串口的使用

    PC系统是Ubuntu12.04,与路由器开发板之间用USB转串口线连接. 一.硬件连接 确认Ubuntu对USB转串口设备的支持. 1.# lsmod | grep usbserial如果有usbs ...

  4. MITK Tutorial (三)

    Step 2: Use the template with the plugins to read a image 在exampleplugin插件中QmitkAwesomeView.cpp中添加头文 ...

  5. CentOS6.5安装tomcat7

    把下载的apache-tomcat-7.0.19.tar.gz文件上传到服务器的根目录    #tar zxvf apache-tomcat-7.0.19.tar.gz    #mv apache-t ...

  6. SQL Server 2008之数据库大型应用解决方案总结

    着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天百万级甚至上亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的问题. 一. ...

  7. [转载+原创]Emgu CV on C# (二) —— Emgu CV on 灰度化

    本文主要对彩色图片灰度化的方法及其实现过程进行总结,最终给出Emgu CV实现的代码. 一.灰度化原理及数学实现(转载自——<图像灰度化方法总结及其VC实现> 该篇文章使用opencv实现 ...

  8. Eclipse配置默认的编码集为utf-8

    既然开了博,那就来点有用的. 可以使用下面的方法,让Eclipse对所有的项目里所有文件都按照指定的编码解析. Eclipse安装目录下有一个eclipse.ini文件, 用记事本打开即可,在最后一行 ...

  9. PHP Cookie处理函数

    (o゜▽゜)o☆[BINGO!] ok,我们先看看cookie是什么东东? cookie是服务器留在客户端的用于识别用户或者存储一些数据的小文件(注意,session存储在服务器端,这是两者的区别之一 ...

  10. Codeforces Round #303 (Div. 2) E. Paths and Trees 最短路+贪心

    题目链接: 题目 E. Paths and Trees time limit per test 3 seconds memory limit per test 256 megabytes inputs ...