Pull解析器主要的事件和方法 XmlPullParser parser = Xml.newPullParser(); //获得pull解析器 parser.setInput(fileInputStream, “utf-8”); //把xml文档以流的形式传给解析器 int eventCode = parser.getEventType(); //获得解析事件返回的code XmlPullParser.START_DOCUMENT //开始文档 XmlPullParser.END_DOCUMENT //结束文档 XmlPullParser.START_TAG //开始节点 XmlPullParser.END_TAG //结束节点 eventCode = parser.next(); //解析下一个节点parser.getName() //获得节点名称 parser.getAttributeValue(null, “id”)//获得节点属性 parser.nextText()//获得test文本值


在assets下面新建一个student.xml

<?xml version="1.0" encoding="utf-8"?>  <stundets>  <student id="2009081315">    <name>饶伟</name>    <speciality>计算机科学与技术</speciality>    <qq>812200157</qq>  </student>    <student id="2009081316">    <name>小伟</name>    <speciality>网络工程</speciality>    <qq>812200156</qq>  </student>    <student id="2009081318">    <name>伟哥</name>    <speciality>软件工程</speciality>    <qq>812200158</qq>  </student></stundets>

XML_PullActivity.java

package rw.pull;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import android.app.Activity;import android.content.res.AssetManager;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;public class XML_PullActivity extends Activity {    /** Called when the activity is first created. */private Button button;private ListView listView;private Student student;private List<Student> lisStudents=new ArrayList<Student>();private List<String> list=new ArrayList<String>();private String Result="";    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        button=(Button) findViewById(R.id.button1);        button.setOnClickListener(new ButtonListener());        listView=(ListView)findViewById(R.id.listView1);    }    class ButtonListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubtry {AssetManager assetManager=getAssets();InputStream inputStream=assetManager.open("student.xml");XmlPullParserFactory factory=XmlPullParserFactory.newInstance();XmlPullParser parser=factory.newPullParser();parser.setInput(inputStream, "UTF-8");int EventType=parser.getEventType();while (XmlPullParser.END_DOCUMENT!=EventType) {String string=parser.getName();//Log.i("----->", "运行到这里了");//Log.i("---------",string);switch (EventType) {case XmlPullParser.START_TAG:if (string.equals("student")) {student=new Student();student.setId(Long.parseLong(parser.getAttributeValue(0)));Log.i("---->", parser.getAttributeValue(0));}if (string.equals("name")) {student.setName(parser.nextText());//Log.i("--------->", parser.nextText());}if (string.equals("speciality")) {student.setSpeciality(parser.nextText());}if (string.equals("qq")) {student.setQQ(Long.parseLong(parser.nextText()));}break;                         case XmlPullParser.END_TAG:                            if (string.equals("student")&&string!=null) {lisStudents.add(student);student=null;}                         break;default:break;}EventType =parser.next();}for (Student stu : lisStudents) {Result=(stu.getId()+" "+stu.getName()+" "+stu.getSpeciality()+" "+stu.getQQ()).toString()+"\n";Log.i("--------->", Result);list.add(Result);}} catch (XmlPullParserException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} ArrayAdapter<String> adapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,list);             listView.setAdapter(adapter);}        }    public class Student {    long Id;    String Name;    String Speciality;    long QQ;        public Student(long id, String name, String speciality, long qQ) {    super();    Id = id;    Name = name;    Speciality = speciality;    QQ = qQ;    }    public Student() {    super();    }        public long getId() {    return Id;    }    public String getName() {    return Name;    }    public long getQQ() {    return QQ;    }    public String getSpeciality() {    return Speciality;    }    public void setId(long id) {    Id = id;    }    public void setName(String name) {    Name = name;    }    public void setQQ(long qQ) {    QQ = qQ;    }    public void setSpeciality(String speciality) {    Speciality = speciality;    }    }}
运行效果


更多相关文章

  1. 手把手带你搭建 Elasticsearch 集群
  2. Android中加入依赖库点击运行后报错:com.android.dex.DexIndexOve
  3. Android(安卓)ANR keyDispatchingTimedOut Error 之 Painless Th
  4. android创建可拖动的悬浮窗,并实现点击回调
  5. Android中XML文件解析
  6. Android(安卓)之 中国天气网 JSON接口的城市编码解析及结果
  7. android 4.0 android.os.NetworkOnMainThreadException
  8. 【Android应用开发】Android(安卓)蓝牙低功耗 (BLE) ( 第一篇 .
  9. android 高效显示Bitmap - 开发文档翻译

随机推荐

  1. c++学习路线
  2. c语言数组中以列优先对吗
  3. c语言函数调用例子
  4. c语言的文件存取方式只能是顺序存取?
  5. c语言打印菱形
  6. c++异常处理的方法
  7. 格式化代码是什么意思
  8. c++类型转换
  9. .net是什么语言 视频
  10. 按位取反运算符的使用