pull解析是解析xml文件最完美的方式,解决了dom解析和sax解析的问题,是谷歌所推荐的解析xml文件方式,下面的代码是解析本地xml文件:
在Activity中的代码
//pull解析实例
XmlPullParser pull=Xml.newPullParser();
//调用自定义方法
List<Shop> list=pullxml(pull);
//自定义方法
private List<Shops> pullxml(XmlPullParser pull) {
//获得本地的xml文件
try {
//文件读取
FileInputStream inputStream = new FileInputStream(file);
//把读取的文件输入到pull中
//获得事件
int type = pull.getEventType();
//判断文件的标签是否是文档的最后
while(type!=XmlPullParser.END_DOCUMENT){
//获得标签的名字
String name = pull.getName();
case XmlPullParser.START_TAG:
//判断名字
if(name.equals("shangpings")){
list = new ArrayList<Shops>();
}
if(name.equals("shangping"))
{
shop = new Shops();
}
if(name.equals("name"))
{
String sname = pull.nextText();
shop.setName(sname);
}
if(name.equals("price"))
{
String sprice = pull.nextText();
shop.setPrice(sprice);
}
if(name.equals("path"))
{
String spath = pull.nextText();
shop.setPath(spath);
}
break;
case XmlPullParser.END_TAG:
if(name.equals("shangping"))
{
// list.add(shop);
Cursor cursor = resolver.query(Uri.parse(url), null, null, null, null);
if(cursor.getCount()<3)
{
ContentValues values=new ContentValues();
values.put("name", shop.getName());
values.put("price", shop.getPrice());
values.put("path", shop.getPath());
resolver.insert(Uri.parse(url), values);
}
shop=null;
}
break;
}
//进行下一次
type = pull.next();
}
} catch (Exception e) {
// TODO: handle exception
}
return list;
}
返回的list就是所解析的结果
注意:pull.next()获得下一次的位置