Android开发之XML的创建和解析

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

XML文件的解析,代码:

 1 public void click(View v) {
 2   InputStream is = getClassLoader().getResourceAsStream("weather.xml");
 3   //获取到XMLPullParse接口的对象
 4   XmlPullParser xpp = Xml.newPullParser();
 5   try {
 6    //设置输出流及编码
 7    xpp.setInput(is, "utf-8");
 8    //获取到节点的类型,START_DOCUMENT=0,END_DOCUMENT=1,START_TAG=2,END_TAG=3,TEXT=4
 9    int type = xpp.getEventType();
10    CityBean city = null;
11    //当前节点不是END_DOCUMENT的话,就一直循环遍历XML文件
12    while (type!=XmlPullParser.END_DOCUMENT) {
13     //使用switch判断type类型
14     switch (type) {
15     //type为2的情况下,进入START_TAG
16     case XmlPullParser.START_TAG:
17      //获取当前节点的名字是weather
18      if ("weather".equals(xpp.getName())) {
19       //city的集合
20       cityList=new ArrayList<>();
21      }else if ("city".equals(xpp.getName())) {
22       city = new CityBean();
23      }else if ("name".equals(xpp.getName())) {
24       String name = xpp.nextText();
25       city.setName(name);
26      }else if ("temp".equals(xpp.getName())) {
27       String temp = xpp.nextText();
28       city.setTemp(temp);
29      }else if ("pm".equals(xpp.getName())) {
30       String pm = xpp.nextText();
31       city.setPm(pm);
32      }
33      break;
34     case XmlPullParser.END_TAG:
35      if ("city".equals(xpp.getName())) {
36       cityList.add(city);
37      }
38      break;
39     default:
40      break;
41     }
42     //把解析的指针移动到下一个节点
43     type=xpp.next();
44    }
45    for (CityBean c1 : cityList) {
46     System.out.println(c1.toString());
47    }
48   } catch (Exception e) {
49    e.printStackTrace();
50   }
51  }

XML文件的创建,代码:

 1 File file = new File(Environment.getExternalStorageDirectory(),"info3.xml");
 2    XmlSerializer xml = Xml.newSerializer();
 3    try {
 4     FileOutputStream fos = new FileOutputStream(file);
 5     xml.setOutput(fos, "utf-8");
 6     xml.startDocument("utf-8", true);
 7     xml.startTag(null, "message");
 8     for (SmsBean smsBean : smsList) {
 9      xml.startTag(null, "sms");
10      xml.startTag(null, "body");
11      xml.text(smsBean.getBody());
12      xml.endTag(null, "body");
13      xml.startTag(null, "address");
14      xml.text(smsBean.getAddress());
15      xml.endTag(null, "address");
16      xml.startTag(null, "date");
17      xml.text(smsBean.getDate());
18      xml.endTag(null, "date");
19      xml.startTag(null, "type");
20      xml.text(smsBean.getType());
21      xml.endTag(null, "type");
22      xml.endTag(null, "sms");
23     }
24     xml.endTag(null, "message");
25     xml.endDocument();
26     fos.close();
27    } catch (Exception e) {
28
29     e.printStackTrace();
30 }
时间: 2024-10-12 19:26:10

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

Android开发之XML解析PULL

Android中解析xml是非常常用的操作,除了SAX和DOM两种最常用的解析xml外,Android内置的Pull解析器解析XML文件. 在Android的源码中大量的使用Pull解析,pull不仅更加的面相对象,而且使用速度和效率更高. Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE.如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件.android系统本身使用到的各种xml文

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

在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider).今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大组件以后再进行介绍.说道Android中的Activity,如果你做过iOS开发的话,Activity类似于iOS中的ViewController(视图控制器).在应用中能看到的东西都是放在活动中的.活动是安卓开发比较重要的东西

android开发之notification通知完全解析

android开发之notification通知完全解析 本文主要介绍的是notification通知的使用,通过阅读此文,你可以了解,在android开发中,notification通知各种使用方法.本文的notification主要是针对android4.4以下的版本. 现在,我们来看一下,如何实现一个notification.估计大家现在最常用的做法是下面这种: Notification notification = new Notification(R.drawable.ic_launc

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T

Android开发之UI更新交互机制与实例解析

android开发过程中,经常需要更新UI的状态和文案等.这是就需要对UI进行 更新.在android中更新UI一般有三种方法,handler机制.RunOnUiThread方法以及AsyncTask异步类方法等 本文下面就这三种方法进行了演示和代码实现. a.Handler机制通过使用消息机制来实现 b.RunOnUiThread方法是通过运行UI线程来达到更新UI的目的 c.AsyncTask是异步类,通过异步更新来更新UI 效果图如下:           (1)Java功能实现代码如下:

Android开发之IPC进程间通信-AIDL介绍及实例解析

一.IPC进程间通信 IPC是进程间通信方法的统称,Linux IPC包括以下方法,Android的进程间通信主要采用是哪些方法呢? 1. 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信:   2. 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身:linux除了支持Unix早期

iOS开发之XML解析

iOS开发之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示XML文件版本, 内部文本使用的编码 <root> 表示根节点 <CityName>北京</CityName>  一个结点, CityName是结点名, 北京结点值 <Item key="1" value="A"></Item>  

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

Android开发之JNI(一)--HelloWorld及遇到的错误解析 1.NDK环境搭建 參考http://blog.csdn.net/xiaoliouc/article/details/8705560 2.HelloWorld编写 (1)新建一个AndroidprojectJniDemo,这个名字能够随便起. (2)新建一个HelloWorld.java类,里面的内容例如以下: public class HelloWorld { public native String print();

IOS开发之XML解析以及下拉刷新上拉加载更多的分享

IOS开发之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示XML文件版本, 内部文本使用的编码 <root> 表示根节点 <CityName>北京</CityName>  一个结点, CityName是结点名, 北京结点值 <Item key="1" value="A"></Item>