zoukankan      html  css  js  c++  java
  • android 读取xml

           在有些应用中,有一点小数据。直接存储在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();
       }

     

  • 相关阅读:
    JDBCUtils
    C3P0配置
    反射基本常识(二)
    反射基本常识(一)
    String to Integer (atoi)
    ZigZag Conversion
    Longest Palindromic Substring
    Palindrome Number
    Reverse Integer
    Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6907868.html
Copyright © 2011-2022 走看看