1先来看pull解析
没啥说的,就是一个模板。
package com.test;
import java.awt.Event;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.StringReader;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;
import cn.itcast.user.model.User;
/**
*
* @author fang
* 生成xml文档
*
*/
public class Demo3 {
public static void main(String argc[]) {
new Demo3();
}
public Demo3() {
xmlParse();
}
public void xmlParse(){
try {
String name = null;
String pirce = null;
XmlPullParserFactory xmlPullParserFactory=XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser=xmlPullParserFactory.newPullParser();
System.out.println("sgssggw");
File file=new File("NewFile.xml");
if(!file.exists()){
System.out.println("文件不存在");
}
FileInputStream fileInputStream=new FileInputStream(file);
xmlPullParser.setInput(fileInputStream,"utf-8");
int evementType=xmlPullParser.getEventType();
while(evementType!=XmlPullParser.END_DOCUMENT){
String pointName=xmlPullParser.getName();
switch (evementType) {
case XmlPullParser.START_TAG:
if("name".equals(pointName)){
name=xmlPullParser.nextText();
}else if("pirce".equals(pointName)){
pirce=xmlPullParser.nextText();
}
break;
case XmlPullParser.END_TAG:
if("book".equals(pointName)){
System.out.println("值为"+name);
System.out.println("值为"+pirce);
}
break;
default:
break;
}
evementType=xmlPullParser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
下面这个房噶的作用是序列化,将user的List集合中的数据
直接序列化为xml文件,先贴下userBean
*/
public class User {
private String username;
private String password;
private String email;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
下面是处理的方法
不会晕,就是成对出现的,可以写完整一个之后写中间的标签
public void XmlSerializer(List<User> users){
// 序列化 XmlSerializer
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlSerializer serializer = factory.newSerializer();
// 设置输出文件
FileOutputStream fileOutputStream = new FileOutputStream("c.xml");
serializer.setOutput(fileOutputStream, "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null, "users");
// 每一个user对象 对应 user元素
for (User user : users) {
serializer.startTag(null, "user");
serializer.startTag(null, "username");
serializer.text(user.getUsername());
serializer.endTag(null, "username");
serializer.startTag(null, "password");
serializer.text(user.getPassword());
serializer.endTag(null, "password");
serializer.startTag(null, "email");
serializer.text(user.getEmail());
serializer.endTag(null, "email");
serializer.endTag(null, "user");
}
serializer.endTag(null, "users");
serializer.endDocument();
fileOutputStream.close();
}
}
pull解析需要导包,大家自己下载导入