《第一行代码-Android》学习笔记(二十三)

2024-06-17 01:32

本文主要是介绍《第一行代码-Android》学习笔记(二十三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.Pull解析方式:

a) 获取XmlPullParserFactory的实例:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

b) 通过XmlPullParserFactory的实例获取到XmlPullParser实例:

XmlPullParser xmlPullParser = factory.newPullParser();

c) 调用XmlPullParsersetInput方法开始解析Xml数据:

xmlPullParser.setInput(new StringReader(result));

d) 获取到eventType,通过while循环,不断的解析每个节点;

e) 在循环中,通过XmlPullParsergetName方法获取到当前节点的名字,在XmlPullParser.START_TAG中,利用nextText()获取到节点的具体内容:

 while(eventType != XmlPullParser.END_DOCUMENT){

                String nodeName = xmlPullParser.getName();

                switch(eventType)

                {

                    case XmlPullParser.START_TAG :

                        if("id".equals(nodeName))

                        {

                            id = xmlPullParser.nextText();

                        }

                        else if("name".equals(nodeName))

                        {

                            name = xmlPullParser.nextText();

                        }

                        else if("version".equals(nodeName))

                        {

                            version = xmlPullParser.nextText();

                        }

                        break;

 

                    case XmlPullParser.END_TAG :

                        if("app".equals(nodeName))

                        {

                            App app = new App();

                            app.setId(Integer.parseInt(id));

                            app.setName(name);

                            app.setVersion(version);

                            list.add(app);

                        }

                        break;

                    default:

                        break;

                }

                eventType = xmlPullParser.next();

            }

 

二.SAX解析方式:

1.新建一个类继承DefaultHandler,并重写父类的五个方法:

a) startDocument()中初始化一些参数

b) startElement()获取nodeName

c) characters()中进行数据的组装

d) endElement()中进行一些清零操作

2.通过SAXParserFactory的类方法获得其实例:

    SAXParserFactory factory = SAXParserFactory.newInstance();

3.通过上面的实例获得SAXParser的实例:

     SAXParser parser = factory.newSAXParser();

4.通过上面的实例获得XMLReader实例:

    XMLReader xmlReader = parser.getXMLReader();

5.将刚刚的DefaultHandler子类的实例传入到XMLReader实例的setContentHandler()方法中:

    ContentHandler contentHandler = new ContentHandler();

    xmlReader.setContentHandler(contentHandler);

6.开始解析xml

xmlReader.parse(new InputSource(new StringReader(result)));

7.解析完毕。

这篇关于《第一行代码-Android》学习笔记(二十三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068113

相关文章

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo