首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android基础总结(12)——XML和JSON解析

1、XML和JSON的定义 XML:扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言...{} 双括号表示对象   [] 中括号表示数组   "" 双引号是属性或   : 冒号表示后者是前者的(这个可以是字符串、数字、也可以是另一个数组或对象) 1 [{"id":"1","name...使用DOM操作XML的代码看起来比较直观,并且,某些方面比基于SAX的实现更加简单。...,Key和Value之间是以逗号","分隔。...所以,我们解析JSON数据时,可以直接通过使用前面提到的fromJson()方法将JSON数据(实际上是字符串类型)转化为我们所想要的一种类型,因此,我们一般需要自定义一个相关的类来将我们需要的数据进行封装

2.1K90

Android实现向本地写入一个XML文件和解析XML文件

在网络存储过程中有很多时候会遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比较多的方法是pull解析和SAX解析,但是我一般只用pull解析,下面就向cd卡写入一个XML文件,然后再使用...二、解析本地XML文件 /** * 读取SD卡中的XML文件,使用pull解析 * * @param v */ public void readxml(View v) { try...解析过程中遇到一个问题,就是解析完了之后,调用fis.close()函数时,会报bad file number的错误,检查了很久才发现是这句话的问题。...补充知识:Android 读取raw下的xml配置文件 1、获取数据流 // 读取配置文件 InputStream in = context.getResources().openRawResource...() 获取标签名 //pullParse.getAttributeValue(0)获取标签的参数 //pullParse.nextText() 获取标签

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android编程解析XML文件的方法详解【基于XmlPullParser

分享给大家供大家参考,具体如下: 前言 在学习Android的Framework层源码时,Android大量的使用XmlPullParser来解析xml文件的源码。...因此,这里也顺道介绍一下XmlPullParser使用。 XML XML(eXtensible Markup Language)中文名为可扩展标记语言。...标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。...当处于某个元素时,可以调用getAttributeValue()方法获取属性的,也可以通过nextText()方法获取本节点的文本。下面通过一个例子来进行解析。...Android 提供的android.util.Xml 类获取 parser 对象 XmlPullParser parser = Xml.newPullParser(); // 方式2: 使用工厂类

1.5K41

2-SIII-Android数据固化之Xml的Pull解析和存储

零、前言 Xml是一种应用广泛的标记语言,我们常见的html便是它的子集。...形如:xxx组成的闭合标签 安卓的res目录下的xml想必大家都是否熟悉,它们最终都是代码中被读取并解析发挥效果的 安卓的SharedPreferences是以Xml的形式存储数据的...pull解析.png Pull解析概述 Pull是安卓内置的,基于事件触发的解析器 Pull解析器小巧轻便,解析速度快,简单易用 主动从解析器中获取事件,可以满足了需要的条件后不再获取事件,结束解析...= XmlPullParser.END_DOCUMENT) { switch (eventType) {//根据事件类型执行 case XmlPullParser.START_DOCUMENT...对象用来记录信息 mWeapon = new WeaponXml(); //获取第一个属性

63430

《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

BufferedReader是一行一行读取数据,每读取一行就把它连接在一起,然后存储content对象中。...循环中使用游标对象把数据提取出来,直到循环结束。 if (cursor !...注意访问共享数据还要声明使用权限,如果使用Android 6.0以上的版本,记得要申请动态使用权限。 构造一个联系人类ContactsUtil来读取所有联系人信息。首先获取内容解析器,然后查询联系人。...XML是用于标记文件使其具有结构性的标记语言。JSON是一种轻量级的数据交换格式。 可扩展标记语言(Extensible Markup Language,XML)主要用来存储带有结构,带有格式的数据。...(1) {} 花括号用来保存对象; (2) [] 方括号用来保存数组; (3) “” 双引号是属性或; (4) : 冒号表示后者是前者的

6210

Carson带你学序列化:深入分析XML多种解析方式(DOM、SAX、PULL)

定义 XML,即 extensible Markup Language ,是一种数据标记语言 & 传输格式 关于另外1种主流的数据传输格式 JSON,具体请看:Carson带你学序列化:深入分析JSON...作用 对数据进行标记(结构化数据)、存储 & 传输 区别于 html :html用于显示信息;而 XML用于存储&传输信息 3. 特点 4....一般情况下,请使用元素,因为 属性无法描述树结构(元素可以) 属性不容易拓展(元素可以) 使用属性的情况:用于分配ID索引,用于标识XML元素。...childNodes[1].nodeValue (节点名称有时也是我们需要的数据) 文本内容:this.firstChild.childNodes[0].childNodes[1].nodeName 了解完...} 特点 & 应用场景 6.2 SAX 方式 简介 即 Simple API for XML,一种 基于事件流驱动、通过接口方法解析 的XML解析方法 解析原理 解析实例 使用

68520

Android开发:XML简介&DOM、PULL、SAX解析对比

目录 定义 作用 特点 语法 树结构 解析方法 定义 XML(extensible Markup Language) ,是一种数据标记语言 & 传输格式 作用 对数据进行标记(结构化数据) 对数据进行存储...-- 根元素的结尾 --> 仅仅是一个纯文本,有文本处理能力的软件都可以处理xml 可拓展性 不中断解析、应用程序的情况下进行拓展。...; 缺点:解析 XML 文件时会将整个 XML 文件的内容解析成树型结构存放在内存中并创建新对象,比较消耗时间和内存; 使用情境 对于像手机这样的移动设备来讲,内存是非常有限的,XML文档比较小...、需要对解析文档进行一定的操作且一旦解析了文档需要多次访问这些数据的情况下可以考虑使用DOM方式,因为其检索和解析效率较高 SAX方式 原理:基于事件驱动,在读取XML文档内容时,事件源顺序地对文档进行扫描...同样的使用情景,SAX和PULL解析方法中,更加推荐PULL方法 总结 本文对现今主流的数据传输格式XML进行了简单的介绍,接下来会介绍另外一种主流的数据传输格式——JSON,有兴趣的可以继续关注Carson_Ho

98730

android学习笔记----pull解析与xml生成和应用申请权限模版

Ice Cream Sandwich版本中,删除了ExpatPullParser类来修复这个bug, // 不幸的是,appAndroid4.0版本下使用它可能会导致应用crash.../u013656135/article/details/49840125 关于方法使用: getAttributeValue(int index);//大意就是返回指定位置的属性,位置从0开始 getAttributeValue...(String namespace,String name); // 大意就是返回指定的属性名对应的属性,如果没有使用命名空间,则第一个参数传入null,第二个参数是属性名,这个例子是"id"属性 Channel.java...serializer.startDocument("utf-8", true); // 4.写info结点 // 使用给定的命名空间和名称写入开始标记。...所有未关闭的开始标记将被关闭,输出将被刷新。调用此方法之后,在下次调用setOutput()之前,不能序列化更多的输出。

68910

4--安卓网络编程之XML总汇篇

零、前言 Xml是一种应用广泛的标记语言,我们常见的html便是它的子集。...形如:xxx组成的闭合标签 安卓的res目录下的xml想必大家都是否熟悉,它们最终都是代码中被读取并解析发挥效果的 安卓的SharedPreferences是以Xml的形式存储数据的... ---- 一、Pull解析概述 Pull是安卓内置的,基于事件触发的解析器 Pull解析器小巧轻便,解析速度快,简单易用 主动从解析器中获取事件,可以满足了需要的条件后不再获取事件...= XmlPullParser.END_DOCUMENT) { switch (eventType) {//根据事件类型执行 case XmlPullParser.START_DOCUMENT...XML进行处理,不必等到文档加载结束,相对快捷,所以可以解析超大XML 缺点:只能用来读取XML中数据,无法进行增删改。

67720

Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回 | Flow 异步流获取返回方式与其它方式对比 | Android 中使用 Flow 异步流下载文件 )

文章目录 一、使用 Flow 异步流持续获取不同返回 二、Flow 异步流获取返回方式与其它方式对比 三、 Android 中 使用 Flow 异步流下载文件 一、使用 Flow 异步流持续获取不同返回...---- 在上一篇博客 【Kotlin 协程】Flow 异步流 ① ( 以异步返回返回多个返回 | 同步调用返回多个的弊端 | 尝试 sequence 中调用挂起函数返回多个返回 | 协程中调用挂起函数返回集合...) 中 分析了 以异步方式 分别使用 序列 和 集合 返回多个返回 , 序列可以先后返回多个返回 , 但是会阻塞线程 ; 集合可以一次性返回多个返回 , 无法持续返回返回 ; 本篇博客中开始引入...; 三、 Android 中 使用 Flow 异步流下载文件 ---- Android 中主线程不可执行网络相关操作 , 因此只能在 子线程 中下载文件 , 可以协程中使用 Dispatcher.IO...#emit 向主线程中发送进度 , 主线程中 , 可以 使用 Flow#collect 函数 收集 Flow 异步流中发射出来的数据 , 如 : 进度 , 捕获的异常 , 下载状态等 ; 完整流程

1.4K11

Android开发笔记(一百四十一)读取PPT和PDF文件

读取ppt文件 读取纯文本 上一篇博文讲到Android上如何读取word文件内容,那么office三剑客中还剩ppt文件的读取。...不同版本的poi库解析ppt的代码略有区别,下面是使用poi15读取ppt的代码: public static ArrayList readPPT(String path) {...poi方式只能有效读取ppt内部的文字信息,对于ppt带的图片以及文字样式,便力有不逮了。...博文《Android开发笔记(一百四十)Word文件的读取与显示》中,提到可以解析docx内部的document.xml文件,从xml标记中获取图片信息与样式信息,然后把图文格式构造成html文件,最后由...= XmlPullParser.END_DOCUMENT) {// 循环读取流 switch (event_type) { case XmlPullParser.START_TAG:

3.6K31

深入理解Kotlin的泛型系统

super E c); addAll 方法中,Collection 中的泛型被定义成接收类型参数 E 的子类,这是因为需要读取也就 c 的,所以需要保证 c 是 Collection 的子类;而 sort...而 Kotlin 中,针对于这两种情况给了另外两个关键字:需要读取带泛型对象的时,使用 out 来标记类型参数;需要传入类型参数的类型作为形参时,使用 in。... Kotlin 中,被 out 标记类型参数的类型称之为协变类型,它代表当 A 是 B 的子类时,C 也能作为 C 的子类使用;而被 in 标记类型参数的类型则相反,它代表当 A 是 B的子类时,C...而 Java 中需要在每次使用时来重复说明该处需要协变还是逆变。Kotlin 也可以进行使用点变型,只要和 Java 一样,声明处不进行说明,而只使用时声明就可以了。...「*」投影 因为 Kotlin 源码中不允许忽略泛型参数,所以一些泛型不重要的地方,就不可避免的使用 来表示。

1.1K10

Android开发笔记(三十四)Excel文件的读写

Android中操作Excel文件的场合较少见,主要是一些专业领域导入导出报表时使用,所以处理Excel读写的开源代码也很稀缺。...使用jxl需要在Android工程中导入jxl.jar包,jxl可以完成Excel的基本读写操作,其支持与不支持的情况如下: 1、jxl只支持Excel2003格式,不支持Excel2007格式。...不过现在还有个实现Android读取2007格式的临时办法,如果我们仔细分析xlsx的文件格式,会发现xlsx文件其实是个压缩包,压缩包里有各种文件,其中数据一般是放在"xl/sharedStrings.xml...据此,我们判断Excel文件为2007格式时,便可以将其解压,然后从中提取出sharedStrings.xml和sheet1.xml,接着使用XML解析工具把具体数据解析出来。...) { boolean null_row = true; for (int j = 0; j < Cols; j++) { // getCell(Col,Row)获得单元格的

2.7K20
领券