安卓xml序列化和xml解析模板

xml解析

//xml文件的pull解析 try { // 1.通过Xml获取一个XmlPullParser对象 XmlPullParser parser = Xml.newPullParser(); //2.设置解析器的初始化参数 File file = new File(getFilesDir(), "xxx.xml"); FileInputStream in = new FileInputStream(file); parser.setInput(inputStream, "utf-8"); // 3.获取当前xml行的事件类型 int eventType = parser.getEventType(); // 4.判断事件类型是否是文档结束的事件类型 while (eventType != XmlPullParser.END_DOCUMENT) { // 5.如果不是,循环遍历解析每一行的数据。解析一行后,获取下一行的事件类型 String currentTagName = parser.getName(); // 判断当前行的事件类型是开始标签还是结束标签 switch (eventType) { case XmlPullParser.START_TAG: // 开始标签的处理 if ("address".equals(tagName)) { String address = parser.nextText(); //编写逻辑 } else if ("body".equals(tagName)) { String body = parser.nextText(); //编写逻辑 } break; case XmlPullParser.END_TAG: // 结束标签的处理 if("sms".equals(parser.getName())){ //编写逻辑 } break; default: break; } eventType = parser.next(); // 获取下一个节点 } }

xml序列化
//xml文件的序列化 try { // 1.得到xml文件的序列化器 XmlSerializer serializer = Xml.newSerializer(); // 2.指定序列化器的一些初始参数 File file = new File(getFilesDir(), "msg.xml"); FileOutputStream out = new FileOutputStream(file); // 3.写xml文件 serializer.setOutput(out, "utf-8"); // 设置输出流信息 serializer.startDocument("utf-8", true); // 设置头信息 serializer.startTag(null, "root"); // 设置根标签serializer.startTag(null, "sms"); serializer.attribute(null, name, value)// 写标签属性serializer.startTag(null, "address"); // 开始标签 serializer.text(address); // 写文本标签 serializer.endTag(null, "address"); // 结束标签serializer.startTag(null, "body"); serializer.text(body); serializer.endTag(null, "body"); serializer.startTag(null, "type"); serializer.text(type); serializer.endTag(null, "type"); serializer.startTag(null, "date"); serializer.text(date); serializer.endTag(null, "date"); serializer.endTag(null, "sms"); serializer.endTag(null, "root"); serializer.endDocument(); out.close(); //关闭输出流 Toast.makeText(this, "xml序列化成功", 0).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "xml序列化失败", 0).show(); }

    推荐阅读