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();
  • 相关阅读:
    每日总结2021.9.14
    jar包下载mvn
    每日总结EL表达语言 JSTL标签
    每日学习总结之数据中台概述
    Server Tomcat v9.0 Server at localhost failed to start
    Server Tomcat v9.0 Server at localhost failed to start(2)
    链表 java
    MVC 中用JS跳转窗体Window.Location.href
    Oracle 关键字
    MVC 配置路由 反复走控制其中的action (int?)
  • 原文地址:https://www.cnblogs.com/allenpengyu/p/3664147.html
Copyright © 2011-2022 走看看