04 pull生成XML
来源:互联网 发布:linux libevent 安装 编辑:程序博客网 时间:2024/04/30 17:18
package com.example.lession04_pull.service;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import android.os.Environment;import android.util.Xml;import com.example.lession04_pull.domain.Person;public class PullXmlService {public Person currentPerson;public List<Person> readXml(InputStream is){//声明返回值List<Person> persons=null;//首先利用Xml.newPullParser()获取解析对象XmlPullParser xmlPullParser=Xml.newPullParser();try{// 解析文件xmlPullParser.setInput(is, "UTF-8");//获取解析的事件类型int eventType=xmlPullParser.getEventType();//判断文件解析的是否完毕while(eventType!=XmlPullParser.END_DOCUMENT){switch (eventType) {case XmlPullParser.START_DOCUMENT:persons=new ArrayList<Person>();break;case XmlPullParser.START_TAG:String tagName=xmlPullParser.getName();if("person".equals(tagName)){//创建person对象currentPerson=new Person();currentPerson.setId(Integer.parseInt(xmlPullParser.getAttributeValue(null, "id")));}else if("name".equals(tagName)){currentPerson.setName(xmlPullParser.nextText());}else if("age".equals(tagName)){currentPerson.setAge(new Short(xmlPullParser.nextText()));}break;case XmlPullParser.END_TAG:if("person".equals(xmlPullParser.getName()) && currentPerson!=null){//把person对象放到集合中去persons.add(currentPerson);currentPerson=null;}break;}eventType=xmlPullParser.next();}is.close();}catch(Exception e){e.printStackTrace();}return persons;}// 写入public boolean write(List<Person> persons) {// 采用pull解析进行实现if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {// 获取sdcard目录 文件对象File sdCardDir = Environment.getExternalStorageDirectory();// 创建文件File file = new File(sdCardDir, "mycsdn.xml");XmlSerializer serializer = Xml.newSerializer();FileOutputStream fos = null;try {// 根据文件对象创建一个文件的输出流对象fos = new FileOutputStream(file);// 设置输出的流及编码serializer.setOutput(fos, "UTF-8");// 设置文件的开始serializer.startDocument("UTF-8", true);// persons标签开始serializer.startTag(null, "persons");for (Person person : persons) {// person标签的开始serializer.startTag(null, "person");// 设置person标签的属性serializer.attribute("null", "id", person.getId() + "");// 设置person标签的子标签 nameserializer.startTag(null, "name");serializer.text(person.getName());serializer.endTag(null, "name");// 设置person标签的子标签的ageserializer.startTag(null, "age");serializer.text(person.getAge() + "");serializer.endTag(null, "age");// person标签的结束serializer.endTag(null, "person");}// persons标签的结束serializer.endTag(null, "persons");// 文件的结束serializer.endDocument();fos.flush();fos.close();return true;} catch (Exception e) {e.printStackTrace();}}return false;}}
0 0
- 04 pull生成XML
- Pull生成XML文件
- pull生成、解析xml
- pull生成XML文件
- pull生成xml
- pull解析、生成xml
- android 使用pull生成xml
- 使用Pull生成XML文件
- Pull 解析/生成 XML文档
- Pull解析和生成XML
- pull解析和生成xml
- pull解析和生成xml
- Android 采用pull生成XML数据
- Android之PULL解析和生成XML
- 用pull解析器 生成xml文件
- 使用pull的方式生成xml
- Android 利用PULL生成XML文档
- 使用Pull解析器生成XML文件
- 关联v4源代码
- http://www.allaboutcookies.org/
- 脏读、不可重复读、幻读
- 面向GC的Java编程
- 百度地图的经纬度位置
- 04 pull生成XML
- E-ROBOT 连接蓝牙自动接听电话,开车时很方便
- dgsdfd
- dataSource配置说明
- Java jdbc数据库连接池总结!
- fhfghf
- Win32下绘图程序(二)保存绘图信息至文件
- 求1—n的全排列
- tableView 系统自带的索引 去除背景