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文件实现的,提 ...
随机推荐
- asp.net 多个域名重定向,在web.Config中配置
一个网站有多个域名,但是需要在访问其中某个域名之后跳转到另一域名. Web.config 中配置 </system.webServer> <!--重定向 域名 开始--> &l ...
- 使用OPTIMIZE TABLE命令来整理表碎片实践
操作环境:ubuntu 14.10 mysql 5.6.25 对含有BLOB或TEXT字段的表,若经常做修改或删除类的操作,需要定期执行OPTIMIZE TABLE命令来整理碎片. 1.creat ...
- 常见的装置与其在Linux当中的档名
需要特别留意的是硬盘机(不论是IDE/SCSI/U盘都一样),每个磁碟机的磁盘分区(partition)不同时, 其磁碟档名还会改变呢!下一小节我们会介绍磁盘分区的相关概念啦!需要特别注意的是磁带机的 ...
- bnuoj 33647 Angry Grammar Nazi(字符串)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=33647 [题意]:字符串匹配,暴力配就行了 [题解]:截出单词,然后进行匹配就行了 [code]: ...
- Thinking in life(1)
There is always one things we donot notice---time ,which is the most important to all of us.By watch ...
- 2875: [Noi2012]随机数生成器 - BZOJ
DescriptionInput 包含6个用空格分割的m,a,c,X0,n和g,其中a,c,X0是非负整数,m,n,g是正整数. Output 输出一个数,即Xn mod gSample Input ...
- 【POJ】【2096】Collecting Bugs
概率DP/数学期望 kuangbin总结中的第二题 大概题意:有n个子系统,s种bug,每次找出一个bug,这个bug属于第 i 个子系统的概率为1/n,是第 j 种bug的概率是1/s,问在每个子系 ...
- [转载]C# ListView用法详解
一.ListView类 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设 ...
- mysql中文乱码解决
有时服务端显示中文正常,但在客户端却显示?乱码, 首先,系统字符集, echo $LANG vi .bash_profile export $LANG=en_us.utf8 另一个是, mysql的, ...
- JsRender系列demo(1)-insert-data
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...