android用pull解析xml文件

用pull解析xml文件:


XML文件内容
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id=“18">
<name>allen</name>
<age>36</age>
</person>
<person id=“28">
<name>james</name>
<age>25</age>
</person>
</persons>






public ArrayList<Person> xmlPullParser(InputStream xml) throws Exception{
 第一步:创建一个pull解析器:
 第一种
 XmlPuttParser pullParser = XmlPullParserFactory.new Instance().newPullParser();
 第二种:
 XmlPuttParser pullParser = Xml.newPullParser();




 第二步:为pull解析器设置它要进行解析的xml数据;
 pullParser.serInput(InputStream inputStream,String inputEncoding);
 pullParser.serInput(xml,"UTF-8");//第二个参数是指定解析编码
 pull解析器每解析一行,就会触发一个事件




 第三步:解析:
 ArrayList<Person> persons = null;
 Int event = pullParser.getEventType();//事件返回一个整数
 //xml文件有相应的语法,对应的语法会触发对应的事件;
 while(event != XmlPullParser.END_DOCUMENT){//触发的事件不是文档结束则继续读
   switch(event){
case XmlPullParser.START_DOCUMENT://这里对应的是文件开始事件
//这里做数据处理的开始行为
persons = new ArrayList<Person>();
break;


case XmlPullParser.STRAT_TAG://这里是一个标签的开始事件
if("person".equals(pullParser.getName())){
int id = new Integer(pullParser.getAttributeValue(0));
Person person = new Person();
person.setId(id);
}
if("name".equals(pullParser.getName())){
  String name = pullParser.nextText();//获取<name>标签后面的文本内容
person.setName(name);
}
if("age".equals(pullParser.getName())){
String name = pullParser.nextText();
person.setName(age);
}
break;


case XmlPullParser.END_TAG://这里触发的是一个标签的结束事件
if("person".equals(pullParser.getName())){
persons.add(person);
}
break;

   }
   event = pullParser.next();//这里要把解析器的指针向后移一位,如果不做,则解析器不会往 后走。


   //返回persons队列


 }
}


测试方法:
InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml");
//调用方法
List<Person> persons = xmlPullParser(xml);




安卓的xml文件中给一个按钮添加如下语句:
android:onClick=""//这里指定一个方法,一旦按钮被点击,则会触发该方法。
这个方法应该写在这个布局文件对应的Activity文件中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值