xml序列化
来源:互联网 发布:未闻花名网络歌手资源 编辑:程序博客网 时间:2024/05/22 04:50
package com.example.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Xml;import android.view.View;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import org.xmlpull.v1.XmlSerializer;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private List<UserSMS> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// 模拟短信内容 list = new ArrayList<>(); for (int i = 0;i<10;i++){ UserSMS sm = new UserSMS(); sm.setData("2017"+i); sm.setAdress("家里"+i); sm.setBody("你好"+i); list.add(sm); } } public void click1(View view){// 第一种xml序列化的方法,利用StringBuffer类直接拼接。// 这里也可以不用StringBuffer类,用String也可以,第一种方法就是拼接,拼接,只要可以拼接都可以。 StringBuffer sb = new StringBuffer(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.append("<SMS>"); for (UserSMS sm:list){ sb.append("<sms>"); sb.append("<adress>"); sb.append(sm.getAdress()); sb.append("</adress>"); sb.append("<body>"); sb.append(sm.getBody()); sb.append("</body>"); sb.append("<data>"); sb.append(sm.getData()); sb.append("</data>"); sb.append("</sms>"); } sb.append("</SMS>");// 将文件存入一个文件里。 try { FileOutputStream fos = new FileOutputStream(new File(getFilesDir().getPath(),"info.xml")); fos.write(sb.toString().getBytes()); } catch (Exception e) { e.printStackTrace(); } } public void click2(View view) throws Exception {//xml序列化的第二种方法,利用XmlSerializer类来实现,这是安卓里自己提供的。//第一步要获取XmlSerializer实例,获取实例有两种方法。// 第一种方法,利用工厂 XmlPullParserFactory xmlPullParserFactory = XmlPullParserFactory.newInstance(); XmlSerializer xmlSerializer = xmlPullParserFactory.newSerializer();// 第二种方法,利用Xml工具获取,注意这里的Xml是一个工具类。 // XmlSerializer xmlSerializer1 = Xml.newSerializer();// 第二步,调用方法,告诉生成 一个xml文件,第一个参数fileoutputstream,第二个参数编码,这里写UTF-8. FileOutputStream fos = new FileOutputStream(new File(getFilesDir(),"in.xml")); xmlSerializer.setOutput(fos,"UTF-8");// 定义文档声明,第一个参数是编码,第二个参数是判断是否是独立的Xml文件,这里不太理解??? xmlSerializer.startDocument("UTF-8",true);// 写根标签,第一个参数命名空间,第二个是根标签的名字,命名空间现在不太理解???这里没有命名空间, //这里写null. xmlSerializer.startTag(null,"Sms"); for (UserSMS s :list){ xmlSerializer.startTag(null,"sms"); xmlSerializer.startTag(null,"adress"); xmlSerializer.text(s.getAdress()); xmlSerializer.endTag(null,"adress"); xmlSerializer.startTag(null,"body"); xmlSerializer.text(s.getBody()); xmlSerializer.endTag(null,"body"); xmlSerializer.startTag(null,"data"); xmlSerializer.text(s.getData()); xmlSerializer.endTag(null,"data"); xmlSerializer.endTag(null,"sms"); } //第一个参数命名空间,第二个是根标签的名字 xmlSerializer.endTag(null,"Sms"); xmlSerializer.endDocument(); }}
阅读全文
0 0
- XML 序列化
- xml序列化集合
- 序列化 XML 数据
- XML序列化
- xml序列化
- XML序列化基础
- XML序列化示例
- xml序列化 ICollection
- xml序列化
- XML 序列化简介
- XML 序列化示例
- XML序列化(一)
- XML序列化(一)
- c#序列化XML
- C# 序列化 xml
- xml序列化
- 自行序列化XML
- 序列化XML
- 【Mybatis从0到1-011】一对多查询(resultMap)
- #19
- 命令模式
- win10中没有本地策略组、本地用户和组
- 抓住那头牛
- xml序列化
- 【HTML5学习笔记】27:CSS3前缀和新单位rem
- 密码学实践-读书笔记四五
- list,set,queue
- 基础的TCP socket 使用
- DAY62 jQuery基础3
- 剑指offer——从上往下打印二叉树
- Session
- 计网|实验三 VLAN的设计与实现