在讲数据解析之前,由于笔者目前能力有限,所以我只能先讲一下XML解析,后面的时间会补上其他数据的解析
讲解目录:
1、何为数据解析
2、xml解析
3、Excel解析
4、json解析
一、何为数据解析
举个栗子----如果不同的程序之间需要通信,假如说A程序需要B程序做一件事,B程序说
我可以做这件事,但是你不需要给我必须的数据。我才能做这件事。
我们可以用下面一副图表示:
在上面这幅图中,两个数据的传输都是有数据格式的。我们要做的就是解析这种数据格式或者生成这种数据格式的数据
二、XML解析
首先我们先认识一下xml数据:
可扩展标记语言(英语:Extensible Markup Language,简称:XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。 -----by wiki
接下来我们看一个XML数据吧
<?xml version="1.0" encoding="UTF-8"?> <Students> <Student> <name java="初级">张三</name> <age>14</age> <fav>烫头</fav> </Student> <Student> <name java="高级">李四</name> <age>16</age> <fav>玩游戏</fav> </Student> </Students>
我们可以看到xml数据的格式,xml数据的第一行写的是xml版本号和字符编码集
它下面的字标签都是成对出现的,这个xml可以表示两个对象。
在Java中xml解析的常见方式大致可以分为以下几个
1、DOM解析----文本对象模型(Document Object Model) w3c标准
2、SAX解析---- 基于事务驱动的解析
3、JAXP SAX和DOM结合
4、JDOM 第三方开源项目 jdom-*.jar
5、DOM4J 第三方开源项目 dom4j-*.jar
在此,我们主要讲解一下java内置的SAX解析和DOM解析
1.DOM解析
原理:将整个xml文档看成一颗树,会将整个文档一次性读入内存中(适合于小型xml文件解析)
首先我们先要了解以下DOM解析里的一些名词
Document对象:文档对象 extends Node
Node对象:节点对象,所有节点类型的父接口包含元素/标签、属性、文本、注释
Element:元素/标签(extends Node)
Attr:属性节点(extends Node)
Text:文本节点(extends Node)
ps:除文档对象之外,其他的都是节点对象
为了更形象的解释一下,请看如下图:
XML解析的步骤大致可分为
1、 构建器工厂
2、构建器
3、xml文件-》document对象
4、节点内容解析
原文地址:https://www.cnblogs.com/bananafish/p/9737241.html