【Android】XmlPullParser及XmlSerializer的使用

来源:互联网 发布:mac怎么打出顿号 编辑:程序博客网 时间:2024/04/30 11:23

直接上代码:

public class PersonService {    /**     * 接收一个包含XML文件的输入流, 解析出XML中的Person对象, 装入一个List返回     *     * @param in 包含XML数据的输入流     * @return 包含Person对象的List集合     */    public static List<Person> getPersons(InputStream in) throws Exception {        //1.获取xml文件方法        //InputStream is = PersonService.class.getClassLoader().getResourceAsStream();        //2.获取解析器(Android中提供了方便的方法就是使用Android中的工具类Xml)        XmlPullParser parser = Xml.newPullParser();        //3.解析器解析xml文件        parser.setInput(in, "UTF-8");        List<Person> persons = new ArrayList<>();        Person person = null;        //4.循环解析        for (int type = parser.getEventType(); type != XmlPullParser.END_DOCUMENT; type = parser.next()) {    // 循环解析            if (type == XmlPullParser.START_TAG) {                // 判断如果遇到开始标签事件                if ("person".equals(parser.getName())) {        // 标签名为person                    person = new Person();                            // 创建Person对象                    String id = parser.getAttributeValue(0);    // 获取属性                    person.setId(Integer.parseInt(id));                // 设置ID                    persons.add(person);                                // 把Person对象装入集合                } else if ("name".equals(parser.getName())) {    // 标签名为name                    String name = parser.nextText();            // 获取下一个文本                    person.setName(name);                            // 设置name                } else if ("age".equals(parser.getName())) {    // 标签名为age                    String age = parser.nextText();                // 获取下一个文本                    person.setAge(Integer.parseInt(age));            // 设置age                }            }        }        return persons;    }    /**     * 将数据写入到Xml文件中.     *     * @param out 输出到要被写入数据的Xml文件的输出流//就相当于 OutputStream os = new FileOutputStream("a.xml");     */    public static void writePersons(List<Book> books, OutputStream out) throws Exception {        //1.获得XmlSerializer(Xml序列化工具)(通过Android中的工具类Xml得到)        XmlSerializer serializer = Xml.newSerializer();        //2.设置输出流(明确要将数据写入那个xml文件中)        serializer.setOutput(out, "UTF-8");        //3.写入开始文档        serializer.startDocument("UTF-8", true);        //4.开始标签        serializer.startTag(null, "bookstore");        //5.循环遍历        for (Book book : books) {            //6.开始标签            serializer.startTag(null, "book");            //7.给这个标签设置属性            serializer.attribute(null, "id", book.getId().toString());            //8.子标签            serializer.startTag(null, "name");            //9.设置子标签的内容            serializer.text(book.getName());            //10.子标签结束            serializer.endTag(null, "name");            //11.标签结束            serializer.endTag(null, "person");        }        //12.根标签结束        serializer.endTag(null, "persons");        //13.文档结束        serializer.endDocument();    }}
public class Book {    private String id;    private String name;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
public class Person {    private int id;    private String name;    private int age;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩睡觉老想着军训怎么办 1岁宝宝太老实了怎么办 上课小孩很调皮不听话怎么办 初中学生上课爱说话调皮怎么办 8个月婴儿疝气怎么办 头部疤痕不长发怎么办呢 有纹身想去当兵怎么办 在部队干活的钱怎么办 新兵5公里超过标准时间怎么办 17个月婴儿裹手怎么办 7个月婴儿裹手怎么办 俩月孩子裹手怎么办 婴儿 3个月 裹手怎么办 一岁宝宝裹手怎么办 5个月宝宝裹手怎么办 不想让孩子裹手怎么办 四个月宝宝裹手怎么办 开车撞狗了跑了怎么办 母螃蟹抱卵了怎么办 我能怎么办我也想睡觉 一个人的微信群找不到了怎么办 一个人的微信被删了找不到了怎么办 不想回对方微信怎么办 喜欢我的人太多怎么办 假如战争今夜打响我们该怎么办 约客户客户说忙怎么办 第一天来姨妈痛怎么办 痛经痛的很厉害怎么办 工作第一天被辞怎么办 第一天练车紧张怎么办 到新公司第一天怎么办 我妈上班别人欺负怎么办 欺负别人他妈来找了怎么办 家人都欺负我妈怎么办 人老了日不动了怎么办? 日照职业技术学院公租房怎么办留宿 眼镜上沾了胶水怎么办 近视镜片刮花了怎么办 墨镜镜片磨花了怎么办 邻居养狗味道大怎么办 邻居不让养狗了怎么办