拉
- <李>
李> XML XML <李>
李>
- <李>
& lt; ?xml version=" 1.0 " encoding=" utf - 8 " ?比; & lt; persons> & lt;人id=" 10 "比; & lt; name> gaohao & lt; age> 25 & lt;/age> & lt;/person> & lt;人id=笆弧北? & lt; name> gaofeng & lt; age> 31日& lt;/age> & lt;/person> & lt;/persons>李> <李>
在领域层新类建人,存放从XML解析出来的数据
李> <李>公共类人 私人整数id; 私人字符串名称; 私人整数年龄; 公共整数getId () { 返回id; } 公共空间setId(整数id) { 这一点。id=id; } 公共字符串getName () { 返回名称; } 公共空间setName(字符串名称){ this.name=名称; } 公共整数getAge () { 返回年龄; } 公共空间setAge(整数年龄){ 这一点。年龄=年龄; } @Override 公共字符串toString () { 返回“人[id=" +身份证+”,name=" +名字+ ",年龄=" +年龄+ "]”; } }
李> <李>
在业务层新建PersonService类,解析XML文件
公共类PersonService { 公共静态List{getperson (InputStream xml)抛出异常 List 人=零; 人的人=零;//使用拉解析XML文件//XmlPullParser pullParser=XmlPullParserFactory.newInstance () .newPullParser();//得到拉解析器 XmlPullParser pullParser=Xml.newPullParser();//也可以用该方法创建解析器 pullParser。setInput (xml, " utf - 8 ");//设置拉解析器要解析的数据//产生事件 int事件=pullParser.getEventType ();//对事件进行判断 而(事件!=XmlPullParser.END_DOCUMENT) { 开关(事件){ 案例XmlPullParser.START_DOCUMENT://文档开始 人=new ArrayList ();//存放解析数据数组的初始化 打破; 案例XmlPullParser.START_TAG: 如果(“人”.equals (pullParser.getName ())) { int id=新的整数(pullParser.getAttributeValue (0)); 人=new (); person.setId (id); } 如果(“名字”.equals (pullParser.getName ())) { 字符串名称=pullParser.nextText();//得到后面的文本 person.setName(名称); } 如果(“年龄”.equals (pullParser.getName ())) { int年龄=new Integer (pullParser.nextText());//得到后面的文本 person.setAge(年龄); } 打破; 案例XmlPullParser.END_TAG: 如果(“人”.equals (pullParser.getName ())) { persons.add(人); 人=零; } 打破; }//解析完第一个字符,会停止解析,要让其继续,需要调用如下方法 事件=pullParser.next();//进入到后面的节,点触发案例XmlPullParser.START_TAG事件,利用循环解析 } 返回的人; } }
通过以上步骤即可将XML文件中的数据解析出来,通过单元测试显示解析出来的数据
在AndroidManifest。xml文件中引入单元测试环境
& lt; uses-library android: name=" android.test.runner "/比; & lt;仪表android: name=" android.test.InstrumentationTestRunner " android: targetPackage=" cn.gaohao。xml“android: label="测试我的程序”/祝辞
新建一个单元测试方法
李>
公共类PersonServiceTest延伸AndroidTestCase { 私有静态最终字符串标签=癙ersonServiceTest”; 公共空间testPersons()抛出异常{ .getResourceAsStream .getClassLoader InputStream xml=this.getClass () () (“person.xml”); List人=PersonService.getPersons (xml); (人的人:人){ 日志。我(标签,person.toString ()); } } }
执行该测试方法就会在LogCat控制台打印如下信息
03-28 06:13:45.375:信息/PersonServiceTest(1247):人[name=gaohao id=10日,年龄=25) 03-28 06:13:45.375:信息/PersonServiceTest(1247):人[name=高峰id=11日,年龄=31]
通过以上方法即可实现对XML文件中数据的解析。
附件:http://down.51cto.com/data/2364225