xml

来源:互联网 发布:华为网管软件 告警 编辑:程序博客网 时间:2024/06/18 14:14

//得到读取的方法

public List<Person> getList(){

List<Person> ls=new ArrayList<Person>();

//获取pull解析的解析器

XmlPullParser parser = Xml.newPullParser();

try {

 * 解析器parser以第二个参数:inputEncoding 方式, 解析第一个参数:inputStream 里的内容

File file = new File(Environment.getExternalStorageDirectory(),"data.xml");

FileInputStream is = new FileInputStream(file);

          设置解析器的读取来源以及读取方式

parser.setInput(is, "utf-8");

//得到事件的类型

int type = parser.getEventType();

/** 循环解析

//如果事件类型不是结束文档,进行循环解析

while(type!=parser.END_DOCUMENT){

//得到节点的名字

String tagName = parser.getName();

//根据事件类型选择

switch (type) {

//选择的是开始标签

case XmlPullParser.START_TAG:

if ("person".equals(tagName)) {

p = new Person();

}//判断节点名字

else if ("name".equals(tagName)) {

p.setName(parser.nextText());

}else if ("age".equals(tagName)) {

p.setAge(parser.nextText());

}

break;

//当选择的是结束标签

case XmlPullParser.END_TAG:

if ("person".equals(tagName)) {

ls.add(p);

//添加集合后,把对象置空, 在循环

p=null;

}

break;

}

//进行下一个事件类型,再次循环

type = parser.next();

}

} catch (Exception e) {

}

return ls;

}

0 0
原创粉丝点击