Android开发之XML的创建和解析
参考: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的创建和解析的更多相关文章
- [置顶] Android开发之XML文件的解析
Android系统开发之XML文件的解析 我们知道Http在网络传输中的数据组织方式有三种分别为:XML方式.HTML方式.JSON方式.其中XML为可扩展标记语言,如下: <?xml vers ...
- Android开发之Activity的创建跳转及传值
在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介 ...
- Android开发之JNI(一)--HelloWorld及遇到的错误解析
Android开发之JNI(一)--HelloWorld及遇到的错误解析 1.NDK环境搭建 參考http://blog.csdn.net/xiaoliouc/article/details/8 ...
- Android开发之旅: Intents和Intent Filters(理论部分)
引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...
- Android 开发之旅:深入分析布局文件&又是“Hello World!”
http://www.cnblogs.com/skynet/archive/2010/05/20/1740277.html 引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实 ...
- Android开发之旅4:应用程序基础及组件
引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用 ...
- 【Android UI】Android开发之View的几种布局方式及实践
引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...
- [置顶] Android开发之MediaPlayerService服务详解(一)
前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThre ...
- android开发之Animations的使用(二)
android开发之Animations的使用(二) 本博文主要讲述的是android开发中的animation动画效果的使用,和上一篇博文不同的是,此次四种动画效果,主要使用的是xml文件实现的,提 ...
随机推荐
- 从零开始学ios开发(十二):Table Views(中)UITableViewCell定制
我们继续学习Table View的内容,这次主要是针对UITableViewCell,在前一篇的例子中我们已经使用过UITableViewCell,一个默认的UITableViewCell包含imag ...
- Connectify是一款很实用的免费软件。能把计算机变成一个无线路由器
Connectify是一款很实用的免费软件.能把计算机变成一个无线路由器.它能通过您计算机上的无线网卡发射一个无线AP,让有WiFi功能的设备(手机.笔记本)上网.3.0版以前仅支持32位Window ...
- 在ASP.NET MVC应用程序中实现Server.Transfer()类似的功能
在ASP.NET MVC应用程序中,如果使用Server.Transfer()方法希望将请求转发到其它路径或者Http处理程序进行处理,都会引发“为xxx执行子请求时出错”的HttpException ...
- D2GS1.11 的DC Key的相關設置指南
D2GS1.11版本暗黑戰網服務器DC Key 的相關設置是保存在 D2Server.ini 文件中的.在這裡我列舉跟DC Key 有關的配置條款. (以下內容具存在於D2Server.ini 文件中 ...
- Feature Extraction
http://www.erogol.com/ml-work-flow-part-3-feature-extraction/
- Python的map、filter、reduce函数 [转]
1. map函数func作用于给定序列的每个元素,并用一个列表来提供返回值. map函数python实现代码: def map(func,seq): mapped_seq = [] fo ...
- Wmware Center安装过程记录
前几天在服务器中安装了Vmware Esxi,以及在客户端中安装了Vmware Client,因此希望能够装一下Vmware vCenter Server试验一下,结果并不顺利,在此记录. 从官网 ...
- 单例模式(.NET)
问题描述: 单例模式 Singleton Pattern 问题解决: (1)单例模式简介: Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点.这就提出了一个 ...
- 【WCF--初入江湖】03 配置服务
03 配置服务 数据库 生成数据库脚本: CREATE DATABASE [EmployeeDb]; CREATE TABLE [dbo].[T_Employee]( [Id] [,) NOT NUL ...
- linux源码阅读笔记 asm函数
在linux源码中经常遇到__asm__函数.它其实是函数asm的宏定义 #define __asm__ asm,asm函数让系统执行汇编语句. __asm__常常与__volatile__一起出现. ...