当前位置:  编程技术>移动开发

Android使用Pull解析器解析xml文件的实现代码

    来源: 互联网  发布时间:2014-10-14

    本文导语:  2个类:1个实体类Person.java,1个继承Activity的类   1.Person.java 代码如下:package com.mrzhu.work_1_sax; public class Person { private String personId; private String name; private String address; private String tel; private String fax; private String email; public String g...

2个类:1个实体类Person.java,1个继承Activity的类

 

1.Person.java

代码如下:

package com.mrzhu.work_1_sax;

public class Person {
 private String personId;
 private String name;
 private String address;
 private String tel;
 private String fax;
 private String email;

 public String getPersonId() {
  return personId;
 }

 public void setPersonId(String personId) {
  this.personId = personId;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getAddress() {
  return address;
 }

 public void setAddress(String address) {
  this.address = address;
 }

 public String getTel() {
  return tel;
 }

 public void setTel(String tel) {
  this.tel = tel;
 }

 public String getFax() {
  return fax;
 }

 public void setFax(String fax) {
  this.fax = fax;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 @Override
 public String toString() {
  return "Person [personId=" + personId + ", name=" + name + ", address="
    + address + ", tel=" + tel + ", fax=" + fax + ", email="
    + email + "]";
 }
}

2.继承Activity的类:

代码如下:

package com.mrzhu.work_1_sax;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.view.View;
import android.widget.Toast;

public class PullActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void pull(View v){
     pullParse(); 
    }

    public void pullParse(){
     List persons = null;
     Person person = null;
     InputStream in = null;
     try {
      XmlPullParser pullParser = Xml.newPullParser();
      in = getAssets().open("person.xml");
   pullParser.setInput(in, "utf-8");
   int eventType = pullParser.getEventType();
   while(eventType != XmlPullParser.END_DOCUMENT){
    String qName = pullParser.getName();
    switch(eventType){
    case XmlPullParser.START_DOCUMENT:
     persons = new ArrayList();
     break;
    case XmlPullParser.START_TAG:
     if("person".equalsIgnoreCase(qName)){
      person = new Person();
      person.setPersonId(pullParser.getAttributeValue(null, "personid"));
     }else if("name".equalsIgnoreCase(qName)){
      person.setName(pullParser.nextText());
     }else if("address".equalsIgnoreCase(qName)){
      person.setAddress(pullParser.nextText());
     }else if("tel".equalsIgnoreCase(qName)){
      person.setTel(pullParser.nextText());
     }else if("fax".equalsIgnoreCase(qName)){
      person.setFax(pullParser.nextText());
     }else if("email".equalsIgnoreCase(qName)){
      person.setEmail(pullParser.nextText());
     }
     break;
    case XmlPullParser.END_TAG:
     if("person".equalsIgnoreCase(qName)){
      persons.add(person);
     }
     break;
    }
    eventType = pullParser.next();
   }
   in.close();
  } catch (XmlPullParserException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

     for (Person person2 : persons) {
   Toast.makeText(this, person2.toString(), Toast.LENGTH_SHORT).show();
  }
    }
}

main.xml

代码如下:


   


放在assets文件夹下的person.xml文件

代码如下:



 
  Tony Blair
  10 Downing Street, London, UK
  (061) 98765
  (061) 98765
  blair@everywhere.com
 
 
  Bill Clinton
  White House, USA
  (001) 6400 98765
  (001) 6400 98765
  bill@everywhere.com
 
 
  Tom Cruise
  57 Jumbo Street, New York, USA
  (001) 4500 67859
  (001) 4500 67859
  cruise@everywhere.com
 
 
  Linda Goodman
  78 Crax Lane, London, UK
  (061) 54 56789
  (061) 54 56789
  linda@everywhere.com
 


    
 
 

您可能感兴趣的文章:

  • 解析ADT-20问题 android support library
  • android layout XML解析错误的解决方法
  • Android入门之TableLayout应用解析(一)
  • 解析:android 如何从JPEG生成BufferedImage
  • 基于Android XML解析与保存的实现
  • 基于android中读取assets目录下a.txt文件并进行解析的深入分析
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法
  • Android入门之TableLayout应用解析(二)
  • 解析Android中string-array数据源的简单使用
  • 解析android创建快捷方式会启动两个应用的问题
  • 解析离线安装Eclipse的Android ADT开发插件的具体操作(图文)
  • 解析后台进程对Android性能影响的详解
  • 解析Android横竖屏切换的问题
  • 解析android中的帮助、about、关于作者、HELP等提示页面
  • Android中asset文件夹与raw文件夹的区别深入解析
  • 解析Android应用程序运行机制
  • android4.0与2.3版本的TP代码区别解析
  • 解析Android中webview和js之间的交互
  • Android中Parcelable的作用实例解析
  • 解析Android开发优化之:对界面UI的优化详解(二)
  • android 自定义Android菜单背景的代码
  • android panellistview 圆角实现代码
  • android 简单图片动画播放的实例代码
  • android网络编程之android连接网络的简单示例代码
  • 用ubuntu下载的android源代码不知下到哪去了
  • Android发送短信功能代码
  • Android Bitmap和Drawable相互转换的简单代码
  • android WakeLock使用方法代码实例
  • android自动安装apk代码实例(不使用apk安装器安装)
  • 控制Android LED灯颜色的代码实例
  • android通过bitmap生成新图片关键性代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • 移动开发 iis7站长之家
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3