android采用pull解析器解析和生成XML
在Android上解析XML文件可以采用SAX、DOM和Android的自带的pull。其中pull最方便和推荐使用:
对于一个XML文件中的内容,要定制一个JAVA BEAN来接收,先看下.XML文件的内容:
liming 30zhangxiaoxiao 25
看下解析方法:
/** * 解析XML * @param xml * @return * @throws Exception */ public List测试方法:getPersons(InputStream xml)throws Exception{ List persons = null; Person person = null; XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(xml,"UTF-8");//为pull解析器设置要解析的数据 int event = pullParser.getEventType(); while(event != XmlPullParser.END_DOCUMENT){ switch (event) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList (); break; case XmlPullParser.START_TAG: if("person".equals(pullParser.getName())){ int id = new Integer(pullParser.getAttributeValue(0)); person = new Person(); person.setId(id); } if("name".equals(pullParser.getName())){ String name = pullParser.nextText(); person.setName(name); } if("age".equals(pullParser.getName())){ int age = new Integer(pullParser.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: if("person".equals(pullParser.getName())){ persons.add(person); person = null; } break; } event = pullParser.next(); } return persons; }
public void testPerson()throws Exception{ InputStream xml = this.getClass().getClassLoader().getResourceAsStream("person.xml"); PersonService ps = new PersonService(); List再看下生成XML文件:persons = ps.getPersons(xml); for (Person person : persons) { Log.i(TAG,person.toString()); } }
/** * 保存 * @param persons * @param out * @throws Exception */ public void save(Listpersons,OutputStream out)throws Exception{ XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(out,"UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for (Person person : persons) { serializer.startTag(null, "person"); serializer.attribute(null, "id", person.getId().toString()); serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(person.getAge().toString()); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); out.flush(); out.close(); }
看下生成的测试方法:
public void testSave()throws Exception{ PersonService ps = new PersonService(); Listpersons = new ArrayList (); persons.add(new Person(43,"zhangxx",80)); persons.add(new Person(12,"lili",20)); persons.add(new Person(15,"xiaoxiao",8)); File xmlFile = new File(getContext().getFilesDir(),"itcase.xml"); FileOutputStream outputStream = new FileOutputStream(xmlFile); ps.save(persons, outputStream); }
>更多相关文章
首页推荐
佛山市东联科技有限公司一直秉承“一切以用户价值为依归
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 05-06TCL科技:预计大尺寸面板价格上涨动能有望延
- 05-06新加坡电信Optus任命新首席执行官以重建品牌
- 05-06微软宣布为消费级用户账户提供安全密钥支持
- 05-06当好大数据产业“守门员”(筑梦现代化 共绘
- 04-29通用智能人“通通”亮相中关村论坛
相关文章
24小时热门资讯
24小时回复排行
热门推荐
最新资讯
操作系统
黑客防御