pull解析器:反序列化  读取xml文件来获取一个对象的数据

 import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory; public class ReadXmlTest { /**
* pull解析器:反序列化 读取xml文件来获取一个对象的数据
* @param args
* @throws XmlPullParserException
* @throws IOException
*/
public static void main(String[] args) throws XmlPullParserException, IOException { //1.导包
//2.获取解析器工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//3.根据工厂获取解析器对象
XmlPullParser parser = factory.newPullParser();
//4.设置输入流
parser.setInput(new FileInputStream("src/student.xml"),"utf-8");
//5.解析
List<Student> list = null;
Student stu = null;
//获取对应时间的类型
int type = parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT){
//获取标签名称
String tagname = parser.getName();
switch(type){
case XmlPullParser.START_TAG:
//判断标签名称
if("students".equals(tagname)){
//创建集合
list = new ArrayList<Student>();
}else if("student".equals(tagname)){
//创建对象
stu = new Student();
//获取ID属性值
String id = parser.getAttributeValue(0);
//赋值
stu.setId(id);
}else if("name".equals(tagname)){
//获取标签体的文本
String name = parser.nextText();
//赋值
stu.setName(name);
}else if("age".equals(tagname)){
//获取标签体的文本
String age = parser.nextText();
//赋值
stu.setAge(Integer.parseInt(age));
}
break;
case XmlPullParser.END_TAG:
if("student".equals(tagname)){
//将对象添加到集合中
list.add(stu);
stu = null;
}
break;
default:
break;
}
//向下走一步
parser.next();
//重新赋值
type = parser.getEventType();
}
//6.输出
System.out.println(list);
}
}

------------------------------------------------------------------------------------------------

  pull解析器:序列化    将一个对象的数据  写入到xml文件中

 import java.io.FileOutputStream;
import java.io.IOException; import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer; public class WriteXmlTest { /**pull解析器:序列化 将一个对象的数据 写入到xml文件中
* @param args
* @throws XmlPullParserException
* @throws IOException
*/
public static void main(String[] args) throws XmlPullParserException, IOException { Student stu = new Student("s_001", "小飞飞", 23);
//1.导包
//2.获取解析器工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//3.根据工厂获取解析器对象
XmlSerializer serializer = factory.newSerializer();
//4.设置输出流
serializer.setOutput(new FileOutputStream("src/sss.xml"),"utf-8");
//5.写入
//5.1写文档声明 参数1:encoding属性值,参数2:standalone属性值
serializer.startDocument("utf-8", true);
//5.2写入开始跟标签
serializer.startTag(null, "students");
for(int i=0; i <5; i++){
//5.3写入student标签
serializer.startTag(null, "student"); serializer.attribute(null, "id", stu.getId()); serializer.startTag(null, "name");
serializer.text(stu.getName());
serializer.endTag(null, "name"); serializer.startTag(null, "age");
serializer.text(String.valueOf(stu.getAge()));
serializer.endTag(null, "age"); serializer.endTag(null, "student");
}
//5.4写入结束标签
serializer.endTag(null, "students");
//5.5写入结束文档
serializer.endDocument();
//反应结果
System.out.println("写入完成,请去查看!");
}
}

  Student类

 public class Student {

     private String id;
private String name;
private int age; public Student() {
super();
}
public Student(String id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
} }

  student.xml

 <?xml version='1.0' encoding='utf-8' ?>

 <students>
<student id='s001'>
<name>zhangsan</name>
<age>23</age>
</student> <student id="s002">
<name>lisi</name>
<age>24</age>
</student> <student id="s003">
<name>王五</name>
<age>25</age>
</student> </students>

导入的包名称(pull解析器jar包):

  kxml2-2.3.0.jar

  xmlpull_1_1_3_4c.jar

最新文章

  1. Android 通过Uri获取Bitmap对象
  2. Select Tree Node
  3. 从.NET平台调用Win32 API
  4. UOJ #10 pyx的难题
  5. 新手107条常用javascript语句
  6. JAVA开发-我的第一个webScan扫描器
  7. 关于版本号:alpha、beta、rc、stable
  8. SpringMvc中Interceptor拦截器用法
  9. java并发编程:如何创建线程
  10. Codeforces Round #204 (Div. 2)-&gt;B. Jeff and Periods
  11. Sublime text 取消记住上一次打开的,这功能太墨迹了!
  12. 在MyEclipse 2014中给Spket增加ExtJS提示
  13. 查看linux网卡硬件名称
  14. NOIP 11.01 应试记录
  15. A1106. Lowest Price in Supply Chain
  16. Jenkins部署码云SpringBoot项目
  17. 给msde加装企业管理器
  18. 微信小程序支付签名老是失败,在官网的校验签名工具校验成功,老是返回签名失败
  19. IE Only的userData
  20. [bzoj] 3673 3674 可持久化并查集 || 可持久化数组

热门文章

  1. iOS开发之多图片无缝滚动组件封装与使用
  2. mysql表名查询sql
  3. IOS 开发中要注意的事项
  4. iOS 如何在整个屏幕中都能实现滑动返回的效果
  5. Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)
  6. java删除文件夹
  7. 以太坊智能合约Hello World示例程序
  8. C#基础知识三之new关键字
  9. 关于IIS和.NET 4.0的问题总结
  10. C#利用反射+特性实现简单的实体映射数据库操作类