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

本文共 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

你可能感兴趣的文章
【操作系统】实验四 主存空间的分配和回收
查看>>
Log4j 配置 的webAppRootKey参数问题
查看>>
VMware ESXi 5.0中时间配置中NTP设置
查看>>
C++中memset()函数笔记
查看>>
oracle sql 数结构表id降序
查看>>
使用cnpm加速npm
查看>>
MySql跨服务器备份数据库
查看>>
一个字典通过dictionaryWithDictionary 他们的内存指针是不同的
查看>>
HTTP 错误 500.0的解决方法。
查看>>
CCF201612-1 中间数(解法三)(100分)
查看>>
百度前端任务一学习的知识
查看>>
C# 四个字节十六进制数和单精度浮点数之间的相互转化
查看>>
jmeter分布式压测
查看>>
Android利用数据库传送数据
查看>>
矩形的个数
查看>>
22、整合mybatis
查看>>
LeetCode: Binary Tree Maximum Path Sum
查看>>
QML-开发中遇到的错误收集
查看>>
django_auth模块
查看>>
原生js文字标签云上下滚动播放
查看>>