您的位置:首页 > 其它

Andriod 使用XmlPull解析XML文件

2016-03-17 21:18 579 查看
1、基本原理:

常用的有:

XmlPullParser.END_DOCUMENT

XmlPullParser.START_DOCUMENT

XmlPullParser.START_TAG

XmlPullParser.END_TAG

XmlPullParser.TEXT

分别代表着XML文档的结束,开始,标签的开始,标签的结束,内容

private void parseXMLWithPull(InputStream in) throws IOException {//解析xml数据
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(in,"utf-8");

int eventType = xmlPullParser.getEventType();
String id = "";
String name = "";
String version = "";
while (eventType != XmlPullParser.END_DOCUMENT){
String nodeName = xmlPullParser.getName();
switch (eventType){
//开始解析某个结点
case XmlPullParser.START_TAG: {
if ("id".equals(nodeName)) {
id = xmlPullParser.nextText();
} else if ("name".equals(nodeName)) {
name = xmlPullParser.nextText();
} else if ("version".equals(nodeName)) {
version = xmlPullParser.nextText();
}
break;
}
//完成解析某个结点
case XmlPullParser.END_TAG:{
if("app".equals(nodeName)){
Log.i("MainActivity","id is"+id);
Log.i("MainActivity","name is"+name);
Log.i("MainActivity","version is"+version);
}
break;
}
default:
break;
}
eventType = xmlPullParser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}

}


2、解析过程

1.首先获得XmlPullPraserFactory对象,之后借助这个对象获取到XmlPullPraser对象。

2.调用XmlPullPraser的setInput方法将获取到的xml文件流放入对象中,并指定相应编码格式。

3.通过XmlPullPraser的getEventType方法得到当前解析事件,开始while解析,如果当前事件不是XmlPullParser.END_DOCUMENT文档的结束,则继续解析。

4.逐个解析某个结点,从结点头到结点尾,之后继续循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: