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

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

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();// 下一个

              }


目录
相关文章
|
3天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台特性与创新潜力
在移动应用开发的广阔天地中,安卓和iOS两大平台各占据一方。本文深入剖析了这两个操作系统的开发环境、工具、语言及市场趋势,旨在为开发者提供一个全面的比较视角。文章将基于最新的行业报告、技术论坛讨论以及专家分析,详细阐述两个平台的技术架构差异、开发成本和用户体验设计的不同点。通过数据支持的论证,揭示安卓与iOS在创新潜力上的独特优势,并探讨它们如何塑造未来的移动应用生态。
5 0
|
4天前
|
测试技术 数据库 Android开发
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?(4)
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?
9 0
|
4天前
|
Android开发
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?(3)
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?
9 0
|
12天前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
11 0
|
12天前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
14 0
|
2月前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
42 1
|
7天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件
|
5天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件
|
7天前
|
XML JavaScript Java
解析XML文件的几种方法
解析XML文件的几种方法
|
9天前
|
XML 数据格式
XML配置Servlet文件,不使用注解配置路径的方法
XML配置Servlet文件,不使用注解配置路径的方法