AndroidStudio使用XmlPullParser解析xml文件
原创
©著作权归作者所有:来自51CTO博客作者mb5dbc2345bf8de的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- 1、问题描述
- 2、结果展示
- 3、代码实现
1、问题描述
学习Android移动开发的时候,需要用到解析xml文件的部分,使用XmlPulParser类进行解析。
2、结果展示
xml文件为:
解析结果为:
3、代码实现
这里粘贴的核心代码,剩下的布局都是简单操作。
private String parseXml() throws XmlPullParserException {
//获取在xml目录下的people.xml文件
XmlPullParser xrp = this.getResources().getXml(R.xml.people);
String output="";
String name = "",from = "",age = "";
try{
//当xrp指针没有直到xml的最后一行
while(xrp.next() != XmlPullParser.END_DOCUMENT){
String people = xrp.getName(); //获取xml中的<people></people>数据
//因为本例中的xml文件只有一项数据
if((people!=null) && (people.equals("person"))){
int count = xrp.getAttributeCount(); //获取xml文件中第一行数据
for (int i = 0; i < count; i++){
String attrName = xrp.getAttributeName(i); //获取第i项数据的key
String attrValue = xrp.getAttributeValue(i);//获取第i项数据的value
if((attrName!=null) && attrName.equals("name")){
name = attrValue;
}else if((attrName!=null) && attrName.equals("from")){
from = attrValue;
}else if((attrName != null) && attrName.equals("age")){
age = attrValue;
}
}
if(count == 3 && (name!= null) && (from != null) && (age != null))
output += "姓名: "+name+", "+"来自: "+from+", "+"年龄: "+age+"\n";
//将结果都以一定的格式保存到outut中
}
}
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this,"output为:\n"+output,Toast.LENGTH_SHORT).show();
return output;
}