android利用Pull解析器解析、生成XMl文件
2013-07-30 14:22
781 查看
—————————————————————————————————xml文件内容
———————————————————————————————service文件内容
<?xml version="1.0" encoding="UTF-8"?>//startdocument <persons> <person id="23"> <name>liming</name> <age>30</age> </person> <person id="20"> <name>zhangxiaoxiao</name> <age>25</age> </person> </persons>
———————————————————————————————service文件内容
package com.example.service; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlSerializer; import android.util.Xml; import com.example.domain.Person; public class PersonService { public static List<Person> getPersons(InputStream xml) throws Exception{ List<Person> persons=null; Person person=null; XmlPullParser pullParser=Xml.newPullParser(); pullParser.setInput(xml, "UTF-8"); int event=pullParser.getEventType(); while(event!=XmlPullParser.END_DOCUMENT){ switch (event) { case XmlPullParser.START_DOCUMENT: persons=new ArrayList<Person>(); 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 static void save(List<Person> persons,OutputStream out) throws Exception{ XmlSerializer serializer=Xml.newSerializer();//1、生成xml序列化器 serializer.setOutput(out, "UTF-8");//2、设置内容输出方向(输出流,编码规则) serializer.startDocument(null, true);//3、设置xml文件的startdocument(encoding属性值,是否可单独存在) serializer.startTag(null, "Persons");//5、设置starttag(命名空间,标签名称) for(Person person:persons){//for循环迭代 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");//6、endtag serializer.endDocument();//4、设置xml文件的enddocument out.flush();//缓冲输入流 out.close(); } }—————————————————————————————test方法内容
package com.example.test; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import com.example.domain.Person; import com.example.service.PersonService; import android.test.AndroidTestCase; import android.util.Log; public class PersonServiceTest extends AndroidTestCase { private static final String TAG="PersonServiceTest"; public void testPersons() throws Exception{ InputStream xml= this.getClass().getClassLoader().getResourceAsStream("person.xml"); List<Person> persons= PersonService.getPersons(xml); for(Person person:persons){ Log.i(TAG, person.toString()); } } public void testSave() throws Exception{ List<Person> persons=new ArrayList<Person>();//2、new一个集合 persons.add(new Person(43,"xingm",80));//3、往集合中添加元素 persons.add(new Person(33,"adfb",88)); persons.add(new Person(22,"jhde",76)); File xmlFile =new File(getContext().getFilesDir(),"xmltext.xml"); FileOutputStream outStream = new FileOutputStream(xmlFile);//4、new一个文件输出流对象 PersonService.save(persons, outStream);//1、调用save方法 } }
相关文章推荐
- android利用pull技术来解析和生成xml文件
- android利用pull解析器解析xml
- Android利用dimens.xml进行适配,使用代码生成不同的dimens.xml文件
- Android开发入门之采用Pull解析器解析和生成XML内容
- Android下使用pull解析器生成XML文件、读取XML文件
- Android_Xml 文件(数据) 生成 与 解析
- Pull解析器解析XML文件和生成XML文件
- Android利用pull解析器生成xml
- 使用pull解析器解析和生成xml文件
- Android使用Pull解析器解析XML文件
- android第十二步Pull解析器解析和生成XML内容
- 使用XML序列化器生成XML文件和利用pull解析XML文件
- Android_xml_pull解析和生成xml文件
- 如何利用Android XmlSerializer生成XML文件
- android-利用xml解析和生成数据
- java语言连接mysql数据库并利用XML解析工具DOM生成XML文件,然后利用DOM SAX对所生成XML文件里的详细信息进行解析
- 在android中使用Pull解析器生成xml文件
- android学习——使用SAX、DOM 和 PULL 解析xml文件,及使用pull生成xml文件
- android 生成、pull解析xml文件
- Android使用PULL解析和生成XML文件