android xml 写和解析

/**
  * 写xml
  * @param list
  * @return
  */
 public static String writeXml(ArrayList<MyTrackPoints> list){ 
  XmlSerializer serializer = Xml.newSerializer(); 
  StringWriter writer = new StringWriter();
  try {
   serializer.setOutput(writer);
   serializer.startDocument("UTF-8",true); 
   serializer.startTag("","track");
   serializer.attribute("", "count", String.valueOf(list.size()));
   for(int i = 0;i<list.size();i++){
    serializer.startTag("", "item");
    serializer.attribute("", "id", String.valueOf(i+1));
    serializer.startTag("", "bigtime");
    serializer.text(list.get(i).time);
    serializer.endTag("", "bigtime");
    serializer.startTag("", "points");
    serializer.attribute("", "count", String.valueOf(list.get(i).list.size()));
    for(int j = 0;j<list.get(i).list.size();j++){
     serializer.startTag("", "point");
     serializer.attribute("", "id", String.valueOf(j+1));
     serializer.startTag("", "time");
     serializer.text(list.get(i).list.get(j).time);
     serializer.endTag("", "time");
     serializer.startTag("", "latitude");
     serializer.text(list.get(i).list.get(j).latitude);
     serializer.endTag("", "latitude");
     serializer.startTag("", "longitude");
     serializer.text(list.get(i).list.get(j).longitude);
     serializer.endTag("", "longitude");
     serializer.endTag("", "point");
    }
    serializer.endTag("", "points");
    serializer.endTag("", "item");
   }
   serializer.endTag("", "track");
   serializer.endDocument();
   return writer.toString();
  } catch (IOException e) {
   e.printStackTrace();
   return null; 
  }
 }

 

/**
  * 解析xml
  * @param input
  * @return
  */
 public static ArrayList<MyTrackPoints> parserXml(InputStream input){
  ArrayList<MyTrackPoints> list = null;
  MyTrackPoints points = null;
  MyTrackPoint point = null;
  try {
   XmlPullParser parser = Xml.newPullParser();
   parser.setInput(input, "UTF-8");
   String tagName = null;
   int event = parser.getEventType();

   while (event != XmlPullParser.END_DOCUMENT) {
    switch (event) {
    case XmlPullParser.START_DOCUMENT:
     list = new ArrayList<MyTrackPoints>();
     break;
    case XmlPullParser.START_TAG:
     tagName = parser.getName();
     if(tagName.equals("item")){
      points = new MyTrackPoints();
     }else if(tagName.equals("point")){
      point = new MyTrackPoint();
     }else if(tagName.equals("bigtime")) {
      points.time = parser.nextText();
     }else if(tagName.equals("time")) {
      point.time = parser.nextText();
     }else if(tagName.equals("latitude")) {
      point.latitude = parser.nextText();
     }else if(tagName.equals("longitude")) {
      point.longitude = parser.nextText();
     }
     break;
    case XmlPullParser.END_TAG:
     tagName = parser.getName();
     if(tagName.equals("item")){
      list.add(points);
     }else if(tagName.equals("point")){
      points.list.add(point);
     }
     break;
    }
    event = parser.next(); 
   }
   if (input != null)
    input.close();
   input = null;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
  return list;
 }

 

public class MyTrackPoints {
 
 public int id;
 public String guid;
 public String time;
 public ArrayList<MyTrackPoint> list = new ArrayList<MyTrackPoint>();
}

 

public class MyTrackPoint implements Serializable{
 
 private static final long serialVersionUID = 1L;
 /* 每个轨迹记录点id号*/
 public int id = 0;
 /* 每个轨迹记录点时间*/
 public String time;
 /* 每个轨迹记录点纬度*/
 public String latitude;
 /* 每个轨迹记录点经度*/
 public String longitude;
 
 /* 每个轨迹记录点guid号*/
 public String guid;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值