安卓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();
}

你可能感兴趣的:(安卓xml序列化和xml解析模板)