Android开发之XML的创建和解析
2016-03-24 15:41
573 查看
参考:http://blog.csdn.net/pi9nc/article/details/9320413
XML文件的解析,代码:
XML文件的创建,代码:
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项目框架搭建 (分析需求、整理资料)
- Android实现QQ空间沉浸式状态栏,并且滑动ListView实现透明度变化
- Android的事件处理
- Android中MediaMuxer和MediaCodec用例 - audio+video
- 安卓开发如何提高Android程序的效率(转)
- Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?(转)
- [better practice系列]Android处理好activity正确情况下的生命周期和意外情况下的生命周期
- Android之apk打包流程
- Android开发之Android5.1.1(CM12.1)源码中短信发送流程解析
- Android下数据库的操作应用(一)
- Android布局优化
- android控件的对齐方式
- Android版xx助手之天天酷跑外挂详细分析
- Android实现网络多线程文件下载
- 讲解Android中的Widget及AppWidget小工具的创建实例
- Android小记:Animation的Interpolator使用方法
- android学习——实现背景图片平铺
- android txt写入文件
- android全渠道浅谈
- 启动AVD时候失败PANIC: ANDROID_SDK_HOME is defined but could not find Test.ini file in $ANDROID_SDK_HOME\.a