zoukankan      html  css  js  c++  java
  • xml文件的生成

      1 关于android中自定义xml文件的生成,请看示例代码(主要来源于黑马教程):
      2 
      3 import java.io.File;
      4 import java.io.FileNotFoundException;
      5 import java.io.FileOutputStream;
      6 import java.io.IOException;
      7 import java.util.ArrayList;
      8 import java.util.List;
      9 
     10 import org.xmlpull.v1.XmlSerializer;
     11 
     12 import android.app.Activity;
     13 import android.os.Bundle;
     14 import android.util.Xml;
     15 import android.view.View;
     16 
     17 
     18 public class MainActivity extends Activity {
     19     //代表所有的短信对象.
     20     private List<SmsInfo> smsInfos;
     21 
     22     @Override
     23     protected void onCreate(Bundle savedInstanceState) {
     24         super.onCreate(savedInstanceState);
     25         setContentView(R.layout.activity_main);
     26 
     27         //模拟短信信息的初始化.
     28         SmsInfo info1 = new SmsInfo("110", "有人掉水里了!", System.currentTimeMillis(), 1);
     29         SmsInfo info2 = new SmsInfo("119", "有火情!", System.currentTimeMillis(), 1);
     30         SmsInfo info3 = new SmsInfo("120", "路边有人产仔!!", System.currentTimeMillis(), 2);
     31 
     32         smsInfos = new ArrayList<SmsInfo>();
     33         smsInfos.add(info1);
     34         smsInfos.add(info2);
     35         smsInfos.add(info3);
     36     }
     37 
     38   //直接在xml文件中绑定了activity中button的点击事件
     39     public void click(View view){
     40 
     41     //这是java中的xml文件的生成方法,不过这种方法比较容易出错
     42 //        StringBuilder sb = new StringBuilder();
     43 //        sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
     44 //        sb.append("<smss>");
     45 //        for(SmsInfo smsinfo: smsInfos){
     46 //            sb.append("<sms>");
     47 //        }
     48 
     49         try {
     50             //得到一个xml文件的序列化器
     51             XmlSerializer serializer = Xml.newSerializer();
     52             //初始化一些参数
     53             File file = new File(getFilesDir(),"sms.xml");
     54             FileOutputStream os = new FileOutputStream(file);
     55             serializer.setOutput(os, "utf-8");
     56 
     57             serializer.startDocument("utf-8", true);
     58             serializer.startTag(null, "smss");
     59 
     60             for(SmsInfo smsInfo: smsInfos){
     61                 serializer.startTag(null, "sms");
     62 
     63                     serializer.startTag(null, "number");
     64                     serializer.text(smsInfo.getNumber());
     65                     serializer.endTag(null, "number");
     66 
     67                     serializer.startTag(null, "content");
     68                     serializer.text(smsInfo.getContent());
     69                     serializer.endTag(null, "content");
     70 
     71                     serializer.startTag(null, "time");
     72                     serializer.text(smsInfo.getTime()+"");
     73                     serializer.endTag(null, "time");
     74 
     75 
     76                     serializer.startTag(null, "type");
     77                     serializer.text(smsInfo.getType()+"");
     78                     serializer.endTag(null, "type");
     79 
     80 
     81                 serializer.endTag(null, "sms");
     82             }
     83 
     84             serializer.endTag(null, "smss");
     85             serializer.endDocument();
     86 
     87             os.close();
     88 
     89 
     90         } catch (Exception e) {
     91             e.printStackTrace();
     92         }
     93 
     94     }
     95 
     96   //定义一个短信的业务类
     97  class SmsInfo {
     98 
     99     private String number;
    100     private String content;
    101     private long time;
    102     /**
    103      * 1代表发送
    104      * 2代表接受
    105      */
    106     private int type;
    107 
    108     public SmsInfo(String number, String content, long time, int type) {
    109         this.number = number;
    110         this.content = content;
    111         this.time = time;
    112         this.type = type;
    113     }
    114 
    115     public String getNumber() {
    116         return number;
    117     }
    118     public void setNumber(String number) {
    119         this.number = number;
    120     }
    121     public String getContent() {
    122         return content;
    123     }
    124     public void setContent(String content) {
    125         this.content = content;
    126     }
    127     public long getTime() {
    128         return time;
    129     }
    130     public void setTime(long time) {
    131         this.time = time;
    132     }
    133     public int getType() {
    134         return type;
    135     }
    136     public void setType(int type) {
    137         this.type = type;
    138     }
    139 
    140 }
    141 
    142 }
    143 
    144 总结android中生成自定义xml文件的方法:
    145 
    146   1)首先必须先定义好xml文件的格式,包括各种标签及其结构、数量等;(草稿纸上完成)
    147 
    148   2)通过 XmlSerializer serializer = Xml.newSerializer(); 得到一个xml文件的序列化器;
    149 
    150   3)初始化一些参数:文件目录,文件名,编码方式等;(写操作主要与文件输出流相关)
    151 
    152   4)主要通过以下方法生成xml文件:(所放参数的具体要求,读者可自行了解)
    153 
    154       serializer.startDocument();
    155       serializer.startTag();
    156       serializer.text();
    157       serializer.endTag();
    158       serializer.endDocument();
  • 相关阅读:
    spring jdbcTemplate使用queryForList示例
    凡事预则立,不立则废:好计划是成功的开始——布利斯定理
    传世智库:初识IPD-集成产品开发
    骑手送外卖获奖1500多万元又被撤销 法律专家:不能一扣了之
    leetcode-----129. 求根到叶子节点数字之和
    leetcode-----128. 最长连续序列
    leetcode-----127. 单词接龙
    leetcode-----126. 单词接龙 II
    leetcode-----125. 验证回文串
    leetcode-----124. 二叉树中的最大路径和
  • 原文地址:https://www.cnblogs.com/allenpengyu/p/3664147.html
Copyright © 2011-2022 走看看