1. 程式人生 > >java學習----數據解析

java學習----數據解析

utf dom 接口 edi 出現 tro 1.0 -- encoding

在講數據解析之前,由於筆者目前能力有限,所以我只能先講一下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、節點內容解析

  

java學習----數據解析