android中自带有pull解析器,所以我们一般都使用pull来解析。这里解析一个最简单的软件升级的xml文件,通过pull解析,获取到软件的版本号,和描述,还有下载地址,实现软件的更新操作。

使用最常用的pull解析器来实现xml解析,实现软件的升级功能!

1.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?><info>    <version>2.0</version>    <description>有新的版本了,赶快来下载吧!</description>    <path>http://xxx.xxxx.xx</path></info>

2.解析xml的业务bean

public class UpdateInfo {    private String version;    private String description;    private String path;    public String getVersion() {        return version;    }    public void setVersion(String version) {        this.version = version;    }    public String getDescription() {        return description;    }    public void setDescription(String description) {        this.description = description;    }    public String getPath() {        return path;    }    public void setPath(String path) {        this.path = path;    }}

3.开始解析xml文件

/** * 获取更新信息 *  * @author piao *  */public class UpdateInfoProvider {    //解析xml文件    public  static UpdateInfo getUpdateInfo(InputStream is) {        XmlPullParser parser = Xml.newPullParser();        UpdateInfo info = new UpdateInfo();        // 初始化解析器        try {            parser.setInput(is, "utf-8");            int type = parser.getEventType();            while (type != XmlPullParser.END_DOCUMENT) {                switch (type) {                case XmlPullParser.START_TAG:                    if ("version".equals(parser.getName())) {                        String version = parser.nextText();                        info.setVersion(version);                    } else if ("description".equals(parser.getName())) {                        String description = parser.nextText();                        info.setDescription(description);                    } else if ("path".equals(parser.getName())) {                        String path = parser.nextText();                        info.setPath(path);                    }                    break;                }                type = parser.next();            }            return info;        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();            return null;        }    }}

4.接受xml文件返回的数据

try {            URL url=new URL(xxx);            HttpURLConnection conn=url.openConnection();            conn.setRequestMethod("GET");            //连接超时时间            conn.setConnectTimeout(5000);            int code = conn.getResponseCode();            if(code==200){                InputStream is=conn.getInputStream();                UpdateInfo updateInfo=new UpdateInfo();                updateInfo=testxml.getUpdateInfo(is);                if(updateInfo!=null){                    //解析成功                }else{                    //解析失败                }            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }

更多相关文章

  1. Android(安卓)Studio自定义模板 写页面竟然可以如此轻松
  2. Android(安卓)手动编译jni动态库
  3. Android(安卓)使用Oprofile分析结果系统瓶颈
  4. [置顶] Android(安卓)WebKit消息处理
  5. Android_UI_实现TabHost的两种方法
  6. Android的AIDL服务
  7. android NDK编译多个so文件
  8. Android——adb工具的使用
  9. android中调用共享库.so的几种方法

随机推荐

  1. Android monkeyrunner整理
  2. android之样式和主题
  3. Android实现Splash界面全屏效果
  4. Android(安卓)- 布局(layout) 详解
  5. 关于Android中SharedPreferences提交数据
  6. android 横向滑动多屏(开源项目)
  7. Android MediaPlayer+SurfaceView播放视
  8. Android 应用程序进程启动过程源码分析
  9. Android 基于TCP/IP的Socket通信
  10. Android Uevent 分析,从kernel到framework