Android(安卓)解析XML 之pull
16lz
2021-01-25
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; } }}
运行效果
更多相关文章
- 手把手带你搭建 Elasticsearch 集群
- Android中加入依赖库点击运行后报错:com.android.dex.DexIndexOve
- Android(安卓)ANR keyDispatchingTimedOut Error 之 Painless Th
- android创建可拖动的悬浮窗,并实现点击回调
- Android中XML文件解析
- Android(安卓)之 中国天气网 JSON接口的城市编码解析及结果
- android 4.0 android.os.NetworkOnMainThreadException
- 【Android应用开发】Android(安卓)蓝牙低功耗 (BLE) ( 第一篇 .
- android 高效显示Bitmap - 开发文档翻译