博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pullxml操作xml
阅读量:6412 次
发布时间:2019-06-23

本文共 3759 字,大约阅读时间需要 12 分钟。

package com.kk.android.test;import java.io.File;import java.io.FileWriter;import java.io.InputStream;import java.io.Writer;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlSerializer;import android.test.AndroidTestCase;import android.util.Log;import android.util.Xml;/** * 使用xmlpull库操作xml * @author MyPC * */public class PullParserPersonTest extends AndroidTestCase {    private static final String TAG="PullParserPersonTest";        /**     * 解析xml     * @throws Exception     */    public void testRead() throws Exception {        InputStream personFile=getClass().getClassLoader().getResourceAsStream("person.xml");        List
personList = null; Person person=null; XmlPullParser parser=Xml.newPullParser(); parser.setInput(personFile, "utf-8"); int eventType=parser.getEventType(); //产生第一个事件 while(eventType!=XmlPullParser.END_DOCUMENT){ switch (eventType){ case XmlPullParser.START_DOCUMENT: personList=new ArrayList
(); break; case XmlPullParser.START_TAG: String tagName=parser.getName();//获取解析器当前指向的元素的名称 if("person".equals(tagName)){ person=new Person(); person.setId(Integer.valueOf(parser.getAttributeValue(0))); } if(person!=null){ if(tagName.equals("name")){ person.setName(parser.nextText()); } if(tagName.equals("age")){ person.setAge(Integer.valueOf(parser.nextText())); } } break; case XmlPullParser.END_TAG: if("person".equals(parser.getName())){ personList.add(person); person=null; } break; } eventType=parser.next(); } for(Person p:personList){ Log.i(TAG, p.toString()); } } /** * 生成xml * @throws Exception */ public void write()throws Exception{ File file=new File(getContext().getFilesDir(),"message.xml"); if(!file.exists())file.createNewFile(); Writer writer=new FileWriter(file); XmlSerializer serializer=Xml.newSerializer(); serializer.setOutput(writer); serializer.startDocument(null, true); serializer.startTag(null, "message"); for(int i=0;i<100;i++){ serializer.startTag(null,"name"); serializer.attribute(null, "id", i+""); serializer.text("name"+i); serializer.endTag(null,"name"); serializer.startTag(null, "age"); serializer.text(i+""); serializer.endTag(null, "age"); } serializer.endTag(null, "message"); serializer.endDocument(); } private class Person { private Integer id; private Integer age; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "id:"+id+" name:"+name+" age:"+age; } } }

转载于:https://www.cnblogs.com/BigIdiot/archive/2012/09/04/2670660.html

你可能感兴趣的文章
jvm 学习(一)
查看>>
JavaScript简介
查看>>
SQL Server附加数据库拒绝访问解决方法汇总
查看>>
SM2算法原理及实现
查看>>
RHCA教材翻译计划
查看>>
js-小括号在不同场合下的作用
查看>>
我的友情链接
查看>>
kvm中虚拟机的硬盘扩容
查看>>
Android (Launch Mode) 四种启动模式
查看>>
透视学理论(二)
查看>>
Dubbo/HSF在Service Mesh下的思考和方案
查看>>
Django form表单
查看>>
CTYL-9.14(tomcat端口与阿里云安全组,域名与tomcat配置,域名与反向代理)
查看>>
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>
简单的Spark+Mysql整合开发
查看>>
阿里java面试经验大汇总(附阿里职位需求)
查看>>
Python全套零基础视频教程+软件2018最新编程视频!
查看>>
内存管理之1:x86段式内存管理与保护模式
查看>>
20180925上课截图
查看>>