android中pull解析xml和生成xml
2012-05-05 16:01
387 查看
一,用pull解析xml
1,将要解析的文件放到src下面,因为程序打包后,会自动将src的文件一起打包的.
person.xml内容:
二,生成xml文件:
生成的实体类
测试:
yjr.xml:将文件导出来
1,将要解析的文件放到src下面,因为程序打包后,会自动将src的文件一起打包的.
person.xml内容:
<?xmlversion="1.0"encoding="UTF-8"?> <persons> <personid="23"> <name>zhangsan</name> <age>30</age> </person> <personid="20"> <name>lisi</name> <age>25</age> </person> </persons>开始解析xml
/** *获取数据 * *@paramxml *@return *@throwsException */ publicstaticList<Person>getPersons(InputStreamxml)throwsException{ List<Person>persons=null; Personperson=null; XmlPullParserpullParser=Xml.newPullParser(); pullParser.setInput(xml,"UTF-8");//为Pull解析器设置要解析的XML数据,并且按照utf-8编码进行读取 intevent=pullParser.getEventType(); while(event!=XmlPullParser.END_DOCUMENT){ switch(event){ caseXmlPullParser.START_DOCUMENT: persons=newArrayList<Person>(); break; caseXmlPullParser.START_TAG://开始标签 if("person".equals(pullParser.getName())){ intid=newInteger(pullParser.getAttributeValue(0)); person=newPerson(); person.setId(id); System.out.println("获取的id是:"+id); } if("name".equals(pullParser.getName())){ Stringname=pullParser.nextText(); person.setName(name); System.out.println("获取的name是:"+name); } if("age".equals(pullParser.getName())){ intage=newInteger(pullParser.nextText()); person.setAge(age); System.out.println("获取的age是:"+age); } break; caseXmlPullParser.END_TAG://结束标签时 if("person".equals(pullParser.getName())){ persons.add(person); person=null; } break; } event=pullParser.next(); } returnpersons; }测试:
publicvoidtestPersons()throwsException{ InputStreamxml=this.getClass().getClassLoader().getResourceAsStream( "person.xml");//将src下的xml写入 List<Person>persons=PersonService.getPersons(xml); for(Personperson:persons){ Log.i("解析xml的数据:",person.toString()); } }
二,生成xml文件:
生成的实体类
publicstaticvoidsave(List<Person>persons,OutputStreamout) throwsException{ XmlSerializerserializer=Xml.newSerializer(); serializer.setOutput(out,"UTF-8"); serializer.startDocument("UTF-8",true);//<?xmlversion='1.0'encoding='UTF-8'standalone='yes'?> serializer.startTag(null,"persons"); for(Personperson: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(); }
测试:
publicvoidtestSave()throwsException{ List<Person>persons=newArrayList<Person>(); persons.add(newPerson(43,"zhangsan",80)); persons.add(newPerson(12,"lisi",20)); persons.add(newPerson(78,"wangwu",8)); //<包>/files FilexmlFile=newFile(getContext().getFilesDir(),"yjr.xml"); FileOutputStreamoutStream=newFileOutputStream(xmlFile); PersonService.save(persons,outStream); }生成的文件:
yjr.xml:将文件导出来
<?xmlversion='1.0'encoding='UTF-8'standalone='yes'?> <persons> <personid="43"> <name>zhangsan</name> <age>80</age> </person> <personid="12"> <name>lisi</name> <age>20</age> </person> <personid="78"> <name>wangwu</name> <age>8</age> </person> </persons>
相关文章推荐
- Android下Xml解析技术(四)、pull生成Xml文件
- Android 下用 Pull 解析和生成 XML
- Android中的XML解析与生成——Pull解析xml、实现xml文件的生成
- Android 下用 Pull 解析和生成 XML
- android 对xml文件的pull解析,生成xml ,对xml文件的增删
- Android中pull解析和生成xml数据到一个字符串中
- Android开发之Pull解析读取和生成XML文件
- Android下Pull生成xml与解析xml
- android利用pull技术来解析和生成xml文件
- Android使用PULL解析和生成XML文件
- Android开发之使用PULL解析和生成XML
- android sax dom pull 解析xml 和生成xml
- Android开发之使用PULL解析和生成XML
- Android 生成和Pull解析xml
- Android下Xml解析技术(四)、pull生成Xml文件
- 【Android网络开发の3】XML之PULL方式 解析和生成XML文件
- Android之PULL解析和生成XML
- android 生成、pull解析xml文件
- Android_xml_pull解析和生成xml文件
- Android中的XML的Pull解析与生成