Android XmlPullParser 方式解析 Xml 文档
更新时间:2017年06月11日 14:30:24 投稿:lqh
这篇文章主要介绍了Android XmlPullParser 方式解析 Xml 文档的相关资料,需要的朋友可以参考下
Android XmlPullParser 方式解析 Xml 文档
xml 文件格式
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id="1"> <name>张三</name> <age>22</age> </person> <person id="2"> <name>李四</name> <age>20</age> </person> </persons>
XmlPullParser 方式解析 xml 文件
import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import com.eboy.domain.Person; import android.util.Xml; public class PersonService { public static List<Person> getPersons(InputStream xml) throws Exception { List<Person> persons = null; Person person = null; XmlPullParser pullParser = Xml.newPullParser(); pullParser.setInput(xml, "UTF-8"); // 为Pull解释器设置要解析的XML数据 int event = pullParser.getEventType(); while (event != XmlPullParser.END_DOCUMENT) { switch (event) { case XmlPullParser.START_DOCUMENT: persons = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: if ("person".equals(pullParser.getName())) { int id = Integer.valueOf(pullParser.getAttributeValue(0)); person = new Person(); person.setId(id); } if ("name".equals(pullParser.getName())) { String name = pullParser.nextText(); person.setName(name); } if ("age".equals(pullParser.getName())) { int age = Integer.valueOf(pullParser.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: if ("person".equals(pullParser.getName())) { persons.add(person); person = null; } break; } event = pullParser.next(); } return persons; } /** * 保存数据到xml文件中 * @param persons * @param out * @throws Exception */ public static void save(List<Person> persons, OutputStream out) throws Exception { XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(out, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for (Person person : persons) { serializer.startTag(null, "person"); serializer.attribute(null, "id", person.getId().toString()); serializer.startTag(null, "name"); serializer.text(person.getName().toString()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(person.getAge().toString()); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); out.flush(); out.close(); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
android studio实验: UI设计 ListView及事件响应
这篇文章主要介绍了android studio实验: UI设计 ListView及事件响应,主要是ListView及其事件响应方法 弹出菜单PopupMenu及其事件响应方法,下面来看看具文章体的介绍吧2021-12-12Android中通过ActionBar为标题栏添加搜索及分享视窗
这篇文章主要介绍了ANDROID中通过ACTIONBAR为标题栏添加搜索以及分享视窗的相关资料,需要的朋友可以参考下2016-12-12Android 点击ImageButton时有“按下”的效果的实现
这篇文章主要介绍了 Android 点击ImageButton时有“按下”的效果的实现的相关资料,需要的朋友可以参考下2017-03-03Android录音--AudioRecord、MediaRecorder的使用
本篇文章主要介绍了Android录音--AudioRecord、MediaRecorder的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-02-02logcat命令使用方法和查看android系统日志缓冲区内容的方法
这篇文章主要介绍了logcat命令使用方法和查看android系统日志缓冲区内容的方法,需要的朋友可以参考下2014-02-02Android中通过view方式获取当前Activity的屏幕截图实现方法
这篇文章主要介绍了Android中通过view方式获取当前Activity的屏幕截图实现方法,本文方法相对简单,容易理解,需要的朋友可以参考下2014-09-09
最新评论