主程序文件
package com.example.lmy.myapplication
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Xml
import android.view.Menu
import android.view.MenuItem
import android.view.View
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import java.io.IOException
import java.io.InputStream
import java.util.ArrayList
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
//一个按钮的onclick事件
public void ParseXMLClick(View view){
ArrayList<Student> list=parse()
for (int i=0
{
System.out.println(list.get(i))
}
}
private ArrayList<Student> parse() {
InputStream in=getResources().openRawResource(R.raw.students)
Student s=null
XmlPullParser pull= Xml.newPullParser()
ArrayList<Student> list=new ArrayList<>()
try {
pull.setInput(in, "UTF-8")
//获取当前的节点的类型
int type=pull.getEventType()
//</students>就是XmlPullParser.END_DOCUMENT
while(XmlPullParser.END_DOCUMENT!=type)
{
switch (type)
{
//<student> <sex>都是XmlPullParser.START_TAG
case XmlPullParser.START_TAG:
if("student".equals(pull.getName()))
{
s=new Student()
s.name=pull.getAttributeValue(null,"name")
}else if("sex".equals(pull.getName()))
{
s.sex=pull.nextText()
}else if("birthday".equals(pull.getName()))
{
s.birthday=pull.nextText()
}
break
//</sex> </student>都是XmlPullParser.END_TAG
case XmlPullParser.END_TAG:
if("student".equals(pull.getName()))
{
list.add(s)
}
break
}
type=pull.next()
}
} catch (XmlPullParserException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
}
return list
}
}
student类
public class Student {
public String name;
public String sex;
public String birthday;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", birthday='" + birthday + '\'' +
'}';
}
}
xml文件
<?xml version="1.0" encoding="utf-8"?>
<students>
<student code="1" name="张三">
<sid>20130501323</sid>
<sex>女</sex>
<birthday>1995-10-1</birthday>
<classname>13计卓</classname>
</student>
<student code="2" name="李四">
<sid>20130501403</sid>
<sex>女</sex>
<birthday>1995-1-28</birthday>
<classname>13计卓</classname>
</student>
<student code="16" name="王五">
<sid>20130501146</sid>
<sex>男</sex>
<birthday>1995-8-20</birthday>
<classname>13计卓</classname>
</student>
<student code="17" name="小明">
<sid>20130501212</sid>
<sex>男</sex>
<birthday>1995-9-8</birthday>
<classname>13计卓</classname>
</student>
</students>