源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android中使用PULL方式解析XML文件深入介绍

  • 时间:2021-07-31 16:43 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android中使用PULL方式解析XML文件深入介绍
[b]一、基本介绍[/b] Android中极力推荐xmlpull方式解析xml。 xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。 jar包下载网址 http://www.xmlpull.org/ http://kxml.sourceforge.net/ [b]二、例子[/b] 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 END_DOCUMENT ; 读取到xml的开始标签返回数字2 START_TAG 读取到xml的结束标签返回数字3 END_TAG 读取到xml的文本返回数字4 TEXT
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="UTF-8"?> <people> <person id="001"> <name>XY1</name> <age>22</age> </person> <person id="002"> <name>XY2</name> <age>22</age> </person> </people>
[u]复制代码[/u] 代码如下:
public class PersonService { /** * 从XML文件中读取数据 * * @param xml XML文件输入流 */ public List<Person> getPeople(InputStream xml) throws Exception { List<Person> lst = null; Person person = null; // 获得pull解析器工厂 XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance(); //获取XmlPullParser的实例 XmlPullParser pullParser = pullParserFactory.newPullParser(); // 设置需要解析的XML数据 pullParser.setInput(xml, "UTF-8"); // 取得事件 int event = pullParser.getEventType(); // 若为解析到末尾 while (event != XmlPullParser.END_DOCUMENT) // 文档结束 { // 节点名称 String nodeName = pullParser.getName(); switch (event) { case XmlPullParser.START_DOCUMENT: // 文档开始 lst = new ArrayList<Person>(); break; case XmlPullParser.START_TAG: // 标签开始 if ("person".equals(nodeName)) { String id = pullParser.getAttributeValue(0); person = new Person(); person.setId(id); } if ("name".equals(nodeName)) { String name = pullParser.nextText(); person.setName(name); } if ("age".equals(nodeName)) { int age = Integer.valueOf(pullParser.nextText()); person.setAge(age); } break; case XmlPullParser.END_TAG: // 标签结束 if ("person".equals(nodeName)) { lst.add(person); person = null; } break; } event = pullParser.next(); // 下一个标签 } return lst; } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部