码迷,mamicode.com
首页 > 移动开发 > 详细

android 读取xml

时间:2017-05-26 13:26:46      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:print   new   etc   size   color   message   getname   equal   解析   

       在有些应用中,有一点小数据。直接存储在XML就是。实现较为简单,

1、xml文件放入asset目录。结构如:

<?xml version="1.0" encoding="UTF-8" ?>
<messages><message id="1"><title>3月毕业证数码像採集</title><date1>3</date1><content>3月12日左右全年一次毕业证数码像採集,由新华社负责</content><url>23</url></message><message id="2"><title>3、9月课程注冊</title><date1>3</date1><content>3月15日、9月15日本学期所修课程注冊、课本征订,包含课程修完学员论文注冊</content><url>23</url>

</message>

</messages>

2 、构建message类,解析xml类PullParseService

3、在activity中调用。

详细代码例如以下:

 

1.解析xml类

package com.edu.notice;

import java.io.InputStream;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;


import android.util.Xml;

public class PullParseService {
 public static ArrayList <Message>getMessages(InputStream inputStream) throws Exception{
  ArrayList<Message> messages =null;
  Message message =null;
  XmlPullParser parser = Xml.newPullParser();
  parser.setInput(inputStream, "UTF-8");  
  int event = parser.getEventType();//
  while(event!=XmlPullParser.END_DOCUMENT){  
   switch(event){  
        case XmlPullParser.START_DOCUMENT://
               messages = new ArrayList<Message>();//  
                  break;  
        case XmlPullParser.START_TAG://
                  if("message".equals(parser.getName())){//
                       message = new Message();  
                       message.setId(Integer.parseInt(parser.getAttributeValue(0)));//
                   }  
                   if(message!=null){  
                       if("title".equals(parser.getName())){//
                          message.setTitle(parser.nextText());  
                       }else if("date1".equals(parser.getName())){//
                          message.setData1(Integer.parseInt(parser.nextText()));  
                       }else if("content".equals(parser.getName())){
                        message.setContent(parser.nextText());
                       }else if("url".equals(parser.getName())){
                        message.setUrl(parser.nextText());
                       }
                   }  
                   break;  
               case XmlPullParser.END_TAG://
                   if("message".equals(parser.getName())){// 
                    messages.add(message);//
                    message = null;  
                   }  
                   break;  
              }  
              event = parser.next();//
         }//end while 
  return messages;
  
 };
}

2、xml每一个对象信息类

package com.edu.notice;

public class Message {
 private int id;
 private String title;
 private int data1;
 private String content;
 private String url;
 /**
  * @return the id
  */
 public int getId() {
  return id;
 }
 /**
  * @param id the id to set
  */
 public void setId(int id) {
  this.id = id;
 }
 /**
  * @return the title
  */
 public String getTitle() {
  return title;
 }
 /**
  * @param title the title to set
  */
 public void setTitle(String title) {
  this.title = title;
 }
 /**
  * @return the data1
  */
 public int getData1() {
  return data1;
 }
 /**
  * @param data1 the data1 to set
  */
 public void setData1(int data1) {
  this.data1 = data1;
 }
 /**
  * @return the content
  */
 public String getContent() {
  return content;
 }
 /**
  * @param content the content to set
  */
 public void setContent(String content) {
  this.content = content;
 }
 /**
  * @return the url
  */
 public String getUrl() {
  return url;
 }
 /**
  * @param url the url to set
  */
 public void setUrl(String url) {
  this.url = url;
 }
 
 
 
}

 

3、读取xml数据应用到应用中

AssetManager  asset =  getAssets();
         try {
    InputStream input=asset.open("message.xml");
    List<Message> list = null;
    try {
     list = PullParseService.getMessages(input);
     
     String tag="xmllllll";
     int id =(int) (Math.random()*12);
     Log.i(tag, list.get(id).getContent());
  //将内容公布广播
     setReminder(true, list.get(id).getContent());
     
     
    } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

 

android 读取xml

标签:print   new   etc   size   color   message   getname   equal   解析   

原文地址:http://www.cnblogs.com/mfmdaoyou/p/6907868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!