开发者社区> 极客峰> 正文

Android开发之使用pull解析XML文件

简介:
+关注继续查看

Android已经集成进了Pull解析器,所以无需添加任何jar文件。android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是, Pull解析器产生的事件是一个数字,而非方法,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。

pull解析xml步骤主要如下:

假设解析下列xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<persons>

       <person id=“18">

              <name>allen</name>

              <age>36</age>

       </person>

       <person id=“28">

              <name>james</name>

              <age>25</age>

       </person>

</persons>

1)获得pull解析器对象

XmlPullParser parser = Xml.newPullParser();

2)指定解析的文件和编码格式

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

3)获得事件类型(获得各标签类型)

int eventType = parser.getEventType();

4)根据各标签信息进行必要数据的读取

while(eventType != XmlPullParser.END_DOCUMENT) {

//没有到结束标签

String tagName = parser.getName();      // 获得当前节点的名称

switch (eventType) {

        case XmlPullParser.START_TAG: // 当前等于开始节点<person>

                                   if("persons".equals(tagName)) {  // <persons>

                              //相关操作

                                   } else if("person".equals(tagName)) { // <person id="1">

                                   //相关操作

                                   } else if("name".equals(tagName)) { // <name>

                                          person.setName(parser.nextText());

                                   } else if("age".equals(tagName)) { // <age>

                                   //相关操作

                                   }

                                   break;

                            case XmlPullParser.END_TAG:       //读取结束 </persons>

                                   if("persons".equals(tagName)) {

                //相关操作

                                   }

                                   break;

                            default:

                                   break;

                            }

                  eventType = parser.next();// 下一个

              }


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java中采用Pull解析器对XML文件进行解析
一、基本介绍 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.ne
1894 0
android自定义xmls文件属性
<p style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:26px"> 在使用到自定义View的xml布局文件中需要加入xmlns:前缀=<a target="_blank" href="http://schemas.android.com/apk/res/%E4%BD%A0%E7%9A%8
777 0
地平线推新一代“天工开物”AI开发平台,让人工智能像“水电煤”一样普及
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 人工智能要像“水电煤”,降低使用门槛是关键。 最近,AI芯片公司地平线为了实现这一点,推出了全新一代AI开放平台——天工开物 (Horizon OpenExplorer™️ Platform)。
880 0
Linux Shell脚本读写XML文件
在Linux下如何用Shell脚本读写XML?现有一个config.xml    192.168.1.45   1209   /home/john 需要修改里面的"server-ip", "server-port" and "import-path",用Shell脚本的参数$1,$2,$3来写入。
1901 0
【转】Android下使用Properties文件保存程序设置
原文:http://jerrysun.blog.51cto.com/745955/804789 废话不说,直接上代码。    读取.properties文件中的配置:  String strValue = "";  Properties props = new Properties();  try {      props.
613 0
+关注
极客峰
开源中国热门博主,曾位列热门博主排行榜第二名(第一为其官方帐号),一个注重细节的技术狂,同时擅长Android、iOS、PHP开发,喜欢钻研新技术。我的微信公众账号:极客峰
109
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载