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文件实现的,提 ...
随机推荐
- LoadRunner 学习笔记(1)性能测试常见术语
并发用户数据:与服务器进行交互的在线用户数量 请求响应时间:从Client端发出请求到得到响应的整个时间 一般包括网络响应时间 + server的响应时间 事务请求响应时间:完成这个事务所用的时间 这 ...
- 【转】 java自定义注解
java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能. 注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.lang.annot ...
- 仿知乎/途家导航栏渐变文字动画效果-b
demo.gif 效果图如上,简单分析下 1.导航栏一开始是隐藏的,随着scrollView滚动而渐变 2.导航栏左右两边的navigationItem是一直显示的 3.导航栏参考了途家app,使用了 ...
- android开发 java与c# 兼容AES加密
由于android客户端采用的是AES加密,服务器用的是asp.net(c#),所以就造成了不一致的加密与解密问题,下面就贴出代码,已经试验过. using System; using System. ...
- mysql 执行流程
mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buf ...
- sql查询结果本身要被使用两次
一.问题 查询用户所有的错题数目到前端展示,要求展示的时候要有错题的编号,从1开始递增.如果删除了第5题,则将后面的题编号均向前挪. 二.分析 错题是在用户每次做题过程中插入到错题表中的,或者将题目推 ...
- Leetcode#143 Reorder List
原题地址 先把链表分割成前后两半,然后交叉融合 实践证明,凡是链表相关的题目,都应该当成工程类题目做,局部变量.功能函数什么的随便整,代码长了没关系,关键是清楚,不容易出错. 代码: ListNode ...
- pku ppt some problem
The Triangle http://poj.org/problem?id=1163 暴力dfs的话,每个节点有两条路可以走,那么n个节点复杂度就是2^n n=100 超时 dp来做 就优 ...
- [转载]Winform开发框架之统计图表的实现
在前面的一些随笔中,介绍了不少我的Winform框架的特性,上篇随笔<Winform开发框架之通用高级查询模块>对其中的通用高级模块进了一个整理说明,本篇继续介绍Winform开发框架重要 ...
- matlab中函数fscanf
matlab中函数fscanf matlab中函数fscanf在文件读取方面的实例如下: 从文件中有格式地读数据 fscanf 语法1:[a,count]=fscanf(fid,format,size ...