android项目读取asset文件夹中的xml文件

1、xml文件放入asset文件夹,结构如:

<?xml version="1.0" encoding="UTF-8" ?>
<messages><message id="1"><title>易钊测试</title><date1>3</date1><content>内容一</content><url>23</url></message>

<message id="2"><title>测试二</title><date1>3</date1><content>内容二</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();
   }

 

好了,这样就能将XML里的内容读取到项目中,奶奶个熊熊!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值