android生成及解析xml 模版代码
来源:互联网 发布:360软件认证费用 编辑:程序博客网 时间:2024/06/06 12:42
生成xml文件
//使用XmlSerializer来序列化xml文件public static boolean backupSms_android(Context context){try{//0.获取短信数据ArrayList<SmsBean> allSms = SmsDao.getAllSms();//1.通过Xml获取一个XmlSerializer对象XmlSerializer xs = Xml.newSerializer();//2.设置XmlSerializer的一些参数,比如:设置xml写入到哪个文件中//os:xml文件写入流 encoding:流的编码xs.setOutput(context.openFileOutput("backupsms2.xml", Context.MODE_PRIVATE), "utf-8");//3.序列化一个xml的声明头//encoding:xml文件的编码 standalone:是否独立xs.startDocument("utf-8", true);//4.序列化一个根节点的开始节点//namespace:命名空间 name: 标签的名称xs.startTag(null, "Smss");//5.循环遍历list集合序列化一条条短信for (SmsBean smsBean : allSms) {xs.startTag(null, "Sms");//name:属性的名称 value:属性值xs.attribute(null, "id", smsBean.id+"");xs.startTag(null, "num");//写一个标签的内容xs.text(smsBean.num);xs.endTag(null, "num");xs.startTag(null, "msg");xs.text(smsBean.msg);xs.endTag(null, "msg");xs.startTag(null, "date");xs.text(smsBean.date);xs.endTag(null, "date");xs.endTag(null, "Sms");}//6.序列化一个根节点的结束节点xs.endTag(null, "Smss");//7.将xml写入到文件中,完成xml的序列化xs.endDocument();return true;}catch (Exception e) {e.printStackTrace();}return false;}
解析xml文件
//解析xml文件读取短信内容public static int restoreSms(Context context) {ArrayList<SmsBean> arrayList = null;SmsBean smsBean = null;try{//1.通过Xml获取一个XmlPullParser对象XmlPullParser xpp = Xml.newPullParser();//2.设置XmlPullParser对象的参数,需要解析的是哪个xml文件,设置一个文件读取流//通过context获取一个资产管理者对象AssetManager assets = context.getAssets();//通过资产管理者对象能获取一个文件读取流InputStream inputStream = assets.open("backupsms.xml");xpp.setInput(inputStream,"utf-8");//xpp.setInput(context.openFileInput("backupsms2.xml"), "utf-8");//3.获取当前xml行的事件类型int type = xpp.getEventType();//4.判断事件类型是否是文档结束的事件类型while(type != XmlPullParser.END_DOCUMENT){//5.如果不是,循环遍历解析每一行的数据。解析一行后,获取下一行的事件类型String currentTagName = xpp.getName();//判断当前行的事件类型是开始标签还是结束标签switch (type) {case XmlPullParser.START_TAG:if(currentTagName.equals("Smss")){//如果当前标签是Smss,需要初始化一个集合arrayList = new ArrayList<SmsBean>();}else if(currentTagName.equals("Sms")){smsBean = new SmsBean();smsBean.id = Integer.valueOf(xpp.getAttributeValue(null, "id"));}else if(currentTagName.equals("num")){smsBean.num = xpp.nextText();}else if(currentTagName.equals("msg")){smsBean.msg = xpp.nextText();}else if(currentTagName.equals("date")){smsBean.date = xpp.nextText();}break;case XmlPullParser.END_TAG://当前结束标签是Sms的话,一条短信数据封装完成, 可以加入list中if(currentTagName.equals("Sms")){arrayList.add(smsBean);}break;default:break;}type = xpp.next();//获取下一行的事件类型}return arrayList.size();}catch (Exception e) {e.printStackTrace();}return 0;}
0 0
- android生成及解析xml 模版代码
- go语言xml文件的解析及生成代码示例
- android 解析XML 生成XML
- 【Android技术整理】XML生成与解析伪代码
- Android之SAX生成XML及TransformerHandler解析
- android中XML解析生成
- android xml解析生成探讨
- android xml解析与生成
- android 生成xml以及xml解析
- KMP模版及解析
- dom4j生成XML文档及解析
- dom4j生成XML文档及解析
- android 二维码生成及解析
- 代码生成Excel导入模版
- 高斯模版生成代码
- SAX解析XML-说明及示例代码
- java二维码生成及解析代码
- 二维码生成原理及解析代码
- linux 启动过程以及 /etc/rc.d/init.d/目录的一点理解
- Caffe学习系列(15):计算图片数据的均值
- Spring Boot 使用JdbcTemplate
- 项目随笔
- 图像阈值化(Python+opencv)
- android生成及解析xml 模版代码
- 【C++学习】【阶段一】指针&文件IO
- python实现obj模型的归一化
- GOF设计模式之INTERPRETER(解释器)
- 详解Java泛型(三)之类型擦除的问题
- 基于时间序列的异常检测C++实现
- PHP中使用sleep函数实现定时任务实例分享_php实例
- hdoj-【2527 Safe Or Unsafe】
- python 自动化之pywinauto 安装