package com.app.service;
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.util.Xml;
import com.app.entity.Person;
public class PersonService {
/**
* pull解析器解析xml数据
* @param input 输入流
* @return list泛型集合
* @throws Exception
*/
public List<Person> readXml(InputStream input) throws Exception{
List<Person> persons = null;
Person person = null;
XmlPullParser pullParser = Xml.newPullParser();
//设置pull解析器要解析的xml数据
pullParser.setInput(input,"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())){
String id = 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 = Integer.parseInt(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;
}
/**
* 保存数据
* @param persons 集合数据
* @param output 输出方向
* @throws Exception
*/
public void save(List<Person> persons, FileOutputStream output) throws Exception{
XmlSerializer serializer = Xml.newSerializer();
//设置写入的数据和字符集
serializer.setOutput(output, "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null, "persons");
if(persons!=null && persons.size()>0){
for(Person person : persons){
serializer.startTag(null, "person");
serializer.attribute(null, "id", person.getId());
serializer.startTag(null, "name");
serializer.text(person.getName());
serializer.endTag(null, "name");
serializer.startTag(null, "age");
serializer.text(person.getAge()+"");
serializer.endTag(null, "age");
serializer.endTag(null, "person");
}
}
serializer.endTag(null, "persons");
serializer.endDocument();
output.flush();
output.close();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Xml.zip (30个子文件)
Xml
bin
classes.dex 6KB
data.xml 284B
person.xml 275B
com
app
test
TestXml.class 2KB
opxml
MainActivity.class 507B
R$layout.class 379B
R$drawable.class 385B
R$attr.class 325B
R.class 459B
R$string.class 412B
service
PersonService.class 4KB
entity
Person.class 1KB
resources.ap_ 10KB
Xml.apk 16KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
values
strings.xml 178B
drawable-mdpi
icon.png 3KB
layout
main.xml 382B
assets
default.properties 364B
gen
com
app
opxml
R.java 635B
src
data.xml 284B
person.xml 275B
com
app
test
TestXml.java 1KB
opxml
MainActivity.java 337B
service
PersonService.java 2KB
entity
Person.java 757B
.project 839B
.classpath 280B
AndroidManifest.xml 862B
共 30 条
- 1
资源评论
御道御小黑
- 粉丝: 58
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功