在android中使用Pull解析器读取xml文件,并进行测试
2011-07-13 23:46
465 查看
1:读取xml文件的类
2:测试程序
3:用到的Person类
5:测试结果
在LogCat中打印输出:
Person:[age=28, id=28, name=bo]
Person:[age=21, id=29, name=xiaohong]
public class PullXMLService { /* * <persons> <person id="28"> <name>bo</name> <age>28</age> </person> <person id="29"> <name>xiaohong</name> <age>21</age> </person> </persons> */ public List<Person> getPersons(InputStream inputStream) throws Throwable { List<Person> persons = null; Person person = null; XmlPullParser parser = Xml.newPullParser(); parser.setInput(inputStream, "UTF-8"); int eventType = parser.getEventType(); //产生第一个事件 while(eventType != XmlPullParser.END_DOCUMENT) { //只要不是文档结束事件 switch(eventType) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: String name = parser.getName(); //获取解析器当前指向的元素的名称 if("person".equals(name)) { person = new Person(); person.setId(new Integer(parser.getAttributeValue(0))); //得到ID的值 } if(person != null) { if("name".equals(name)) { person.setName(parser.nextText()); //得到name的值,即获取解析器当前指向元素的下一个文本节点的值 } else if("age".equals(name)) { person.setAge(new Short(parser.nextText())); //得到age的值 } } break; case XmlPullParser.END_TAG: if("person".equals(parser.getName())) { //又到person的时候就结束一次赋值 persons.add(person); person = null; } break; } eventType = parser.next(); } return persons; } }
2:测试程序
public void testPullGetPersons() { PullXMLService pullXMLService = new PullXMLService(); InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test.xml"); try { List<Person> persons = pullXMLService.getPersons(inputStream); for(Person person : persons) { Log.i(TAG, person.toString()); } } catch (Throwable e) { e.printStackTrace(); } }
3:用到的Person类
public class Person { private Integer id; private String name; private Short age; public Person(){} public Person(Integer id, String name, Short age) { super(); this.id = id; this.name = name; this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Short getAge() { return age; } public void setAge(Short age) { this.age = age; } @Override public String toString() { return "Person [age=" + age + ", id=" + id + ", name=" + name + "]"; } }4:test.xml文件的内容
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id="28"> <name>zhangbo</name> <age>28</age> </person> <person id="29"> <name>xiaohong</name> <age>21</age> </person> </persons>
5:测试结果
在LogCat中打印输出:
Person:[age=28, id=28, name=bo]
Person:[age=21, id=29, name=xiaohong]
相关文章推荐
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- Android中使用Pull解析器生成XML文件和读取xml文件
- Android学习--使用Pull解析器读取XML文件、将对象写入XML文件
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- Android学习--使用Pull解析器读取XML文件、将对象写入XML文件
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- Android下使用pull解析器生成XML文件、读取XML文件
- Android笔记使用Pull解析器读取XML文件
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- android测试:使用DOM读取xml文件的内容
- Android中使用Pull解析器读取XML文件
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- Android学习--使用Pull解析器读取XML文件、将对象写入XML文件
- Android 使用Instrumentation进行自动化测试
- Android使用Pull解析器解析XML文件
- Android的Gradle技巧 5.4使用Espresso进行活性测试
- Android初学笔记之<使用真机进行测试Android工程>
- android 使用Monkey进行压力测试
- Android使用monkey进行压力测试