在MainActivity中:
public class MainActivity extends Activity {
TextView tv;//布局文件中定义的东西就不写出来了
ArrayList<StudentBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list =new ArrayList<StudentBean>();
tv =(TextView) findViewById(R.id.tv);
}
public void XmlParse(View v)
{
try {
//利用XML解析API
XmlPullParser xpp =Xml.newPullParser();
xpp.setInput(new FileInputStream("/data/data/com.example.parsexmltext/files/stu1.xml"), "utf-8");
//获取事件类型
int type=xpp.getEventType();
StudentBean stu=null;
//在文档结束的时候跳出循环
while(type!=XmlPullParser.END_DOCUMENT)
{
switch(type)
{
case XmlPullParser.START_TAG:
if("student".equals(xpp.getName()))
{
stu = new StudentBean();
}else if("no".equals(xpp.getName()))
{
stu.setNo(xpp.nextText());
}else if("name".equals(xpp.getName()))
{
stu.setName(xpp.nextText());
}else if("sex".equals(xpp.getName()))
{
stu.setSex(xpp.nextText());
}
break;
case XmlPullParser.END_TAG:
if("student".equals(xpp.getName()))
{
list.add(stu);
stu=null;
}
break;
}
//跳到下一个标签
type = xpp.next();
}
StringBuilder sb =new StringBuilder();
for(int i=0;i<list.size();i++)
{
sb.append(list.get(i).toString());
}
tv.setText(sb.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "XML文件解析失败", 0).show();
}
}
}