解析与序列化

<xml 头>

<student>

<name>11</name>

<number>11122,</number>

</student>

//1.得到xml文件的序列化器

XmlSerializer serializer=Xml.newSerializer();

//2.指定序列化器的一些初始化参数

File file=new File(getFilesDir(),name+".xml");

FileOutputStream fos=new FileOutputStream(file);

serializer.setOutput(fos, "utf-8");

//3.写文件

//文档开头

serializer.startDocument("utf-8",true);

//第一个为命名空间一般用不到 为null

serializer.startTag(null,"student");

serializer.startTag(null,"name");

serializer.text(name);

serializer.endTag(null,"name");

serializer.startTag(null,"number");

serializer.text(number);

serializer.endTag(null,"number");

serializer.startTag(null,"sex");

serializer.text(sex);

serializer.endTag(null,"sex");

serializer.endTag(null,"student");

serializer.endDocument();

fos.close();


//学生信息的xml文件存在

//1.获取一个xml解析器

XmlPullParser parser=Xml.newPullParser();

//2.设置解析器的初始化参数

FileInputStream fis=new FileInputStream(file);

parser.setInput(fis,"utf-8");

//解析xml文件

int type=parser.getEventType();//得到第一个事件的类型

System.out.println("type:"+type);

StringBuffer sb=new StringBuffer();

while(type!=XmlPullParser.END_DOCUMENT){

if(type==XmlPullParser.START_TAG){

//开始节点

//判断节点名称

if("name".equals(parser.getName())){

String namestr=parser.nextText();

sb.append("姓名:"+namestr+"\n");

}else if("number".equals(parser.getName())){

String numberStr=parser.nextText();

sb.append("学号:"+numberStr+"\n");

}

else if("sex".equals(parser.getName())){

String sexStr=parser.nextText();

sb.append("学号:"+sexStr+"\n");

}

}

type=parser.next();

System.out.println("type:"+type);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容