java學習----數據解析
在講數據解析之前,由於筆者目前能力有限,所以我只能先講一下XML解析,後面的時間會補上其他數據的解析
講解目錄:
1、何為數據解析
2、xml解析
3、Excel解析
4、json解析
一、何為數據解析
舉個栗子----如果不同的程序之間需要通信,假如說A程序需要B程序做一件事,B程序說
我可以做這件事,但是你不需要給我必須的數據。我才能做這件事。
我們可以用下面一副圖表示:
在上面這幅圖中,兩個數據的傳輸都是有數據格式的。我們要做的就是解析這種數據格式或者生成這種數據格式的數據
二、XML解析
首先我們先認識一下xml數據:
可擴展標記語言
接下來我們看一個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、節點內容解析
java學習----數據解析