Java-初入XML

從這一篇可是進入JavaEE的學習中崔慧,se實在沒啥好寫的,等我深入開發(fā)后理解透徹再寫吧取胎〗僦希考試夠用了
1 XML入門

1.1 引入
  • HTML: 負責網(wǎng)頁的結(jié)構(gòu)
  • CSS: 負責網(wǎng)頁的樣式(美觀)
  • Javascript: 負責在瀏覽器端與用戶進行交互。
    負責靜態(tài)的網(wǎng)頁制作的語言

HTML語言特點:
1)由標簽組成提岔。
2)語法結(jié)構(gòu)松散的仙蛉、大小寫不區(qū)分、結(jié)束標簽和開始標簽不一定匹配

這種自定義標簽可以把他們叫做xml標簽碱蒙。

1.2 HTML和XML的區(qū)別
            HTML                                        XML 

名稱: HyperText Markup Languae(超文本標記語言) Extend Markup Languge(可擴展標簽語言)
標簽: 標簽是w3c組成指定荠瘪,固定的,約100來個 標簽由開發(fā)者自己制定的(要按照一定的語法定 義)
作用: 負責網(wǎng)頁的結(jié)構(gòu) 1)描述帶關(guān)系的數(shù)據(jù)(作為軟件的配置文件): 包 含與被包含的關(guān)系

properties文件:  key-value 
                 name=xulei 
                 password=123456                                                            
<user>   
<name>xulei</name>
<password>123456</password>
</user>

場景
tomcat
1)struts Hibernate spring (三大框架)

2)作為數(shù)據(jù)的載體(存儲數(shù)據(jù)赛惩,小型的“數(shù)據(jù)庫”)

2 XML作用
  • 2.1 描述帶關(guān)系的數(shù)據(jù)(軟件的配置文件)

    web服務(wù)器(PC):
    學生管理系統(tǒng) -> 添加學生功能 -> 添加學生頁面 ->name=eric&email=xulei@qq.com

    前提: 網(wǎng)絡(luò)(IP地址: oracle:255.43.12.54 端口:1521 )
    java代碼:使用ip(255.43.12.54)地址和端口(1521)哀墓,連接oracle數(shù)據(jù)庫,保存學生數(shù)據(jù)喷兼。

    //  把ip地址端口配置到xml文件:
    
    host.xml
    <host>
        <ip>255.43.12.55</ip>
        <port>1521</port>
    </host>
數(shù)據(jù)庫服務(wù)器(PC):
    主服務(wù)器(255.43.12.54):Oracle數(shù)據(jù)庫軟件(負載)
    副服務(wù)器(255.43.12.55):Oracle數(shù)據(jù)庫軟件
  • 2.2 數(shù)據(jù)的載體(小型的“數(shù)據(jù)庫”)
    教師管理系統(tǒng): 姓名 工齡+1 郵箱

          發(fā)教師數(shù)據(jù)給財務(wù)管理系統(tǒng): 
                  String teacher =    name=張三&email=zhangsan@qq.com&workage=2  字符串
                          (問題: 1)不好解析 2)不是規(guī)范)
    
                  teacher.xml
                      <teacher>   
                              <name>張三</name>
                              <email>zhangsan@qq.com</email>
                              <workage>2</workage>
                      </teacher>
                  這種一種規(guī)范
    
          財務(wù)管理系統(tǒng):   
                      姓名   工齡+1  郵箱
                  發(fā)獎金:   統(tǒng)計獎金篮绰。   工齡
                  發(fā)郵件功能: 
                          郵箱   姓名   金額
    
          方案一: 在財務(wù)管理系統(tǒng)中維護了一套教師信息。
                  每年 : 工齡增加  維護了兩個系統(tǒng)的信息季惯。
    
          方案二: 教師信息只在教學管理系統(tǒng)中維護吠各。
    
3 XML語法
*xml文件以xml后綴名結(jié)尾。*
*xml文件需要使用xml解析器去解析勉抓。瀏覽器內(nèi)置了xml解析器贾漏。*
  • 3.1 標簽
    語法: <student></student> 開始標簽 標簽體內(nèi)容 結(jié)束標簽
    1)<student/> 或 <student></student> 空標簽。沒有標簽體內(nèi)容
    2)xml標簽名稱區(qū)分大小寫藕筋。
    3)xml標簽一定要正確配對纵散。
    4)xml標簽名中間不能使用空格
    5)xml標簽名不能以數(shù)字開頭
    6)注意: 在一個xml文檔中,有且僅有一個根標簽
    3.2 屬性
    語法: <Student name="eric">student</Student>
    注意:
    1)屬性值必須以引號包含隐圾,不能省略伍掀,也不能單雙引號混用!t岢小硕盹!
    2)一個標簽內(nèi)可以有多個屬性,但不能出現(xiàn)重復的屬性名_犊А4窭!
    3.3 注釋
    語言:

      練習:
              通訊錄系統(tǒng)
              聯(lián)系人數(shù)據(jù):編號 (唯一的) 姓名   年齡   電話 郵箱  QQ 
    
               要求: 
              contact.xml
                  1)設(shè)計一個xml文件甸各,用于存儲聯(lián)系人數(shù)據(jù)
                  2)這個xml文件可以多個聯(lián)系人垛贤。
      3.4 文檔聲明
      語法: <?xml version="1.0" encoding="utf-8"?>
    
      version: xml的版本號
      encoding: 解析xml文件時查詢的碼表(解碼過程時查詢的碼表)
    
      注意:
              1)如果在ecplise工具中開發(fā)xml文件,保存xml文件時自動按照文檔聲明的encoding來保存文                    件趣倾。
              2)如果用記事本工具修改xml文件聘惦,注意保存xml文件按照文檔聲明的encoding的碼表來保存。
    
      3.5 轉(zhuǎn)義字符
      在xml中內(nèi)置了一些特殊字符儒恋,這些特殊字符不能直接被瀏覽器原樣輸出善绎。如果希望把這些特殊字符按照原樣輸出到瀏覽器黔漂,對這些特殊字符進行轉(zhuǎn)義。轉(zhuǎn)義之后的字符就叫轉(zhuǎn)義字節(jié)禀酱。
    
              特殊字符  轉(zhuǎn)義字符
               <         <
               >         >
               "         "
              &         &
              空格      &nsbp;
              
      3.6 CDATA塊
      作用: 可以讓一些需要進行包含特殊字符的內(nèi)容統(tǒng)一進行原樣輸出炬守。
    
      3.7 處理指令
          作用: 告訴xml解析如果解析xml文檔
          
          案例: <?xml-stylesheet type="text/css" href="1.css"?> 告訴xml解析該xml文檔引用了哪個css文件
    
              需要提前xml內(nèi)容可以使用xml-stylesheet指令指令
    
4 XML解析
  • 4.1 引入
    xml文件除了給開發(fā)者看,更多的情況使用程序讀取xml文件的內(nèi)容剂跟。這叫做xml解析

  • 4.2 XML解析方式(原理不同)
    DOM解析
    SAX解析

  • 4.3 XML解析工具
    DOM解析原理:
    1)JAXP (oracle-Sun公司官方)
    2)JDOM工具(非官方)
    3)Dom4J工具(非官方)
    三大框架(默認讀取xml的工具就是Dom4j)
    .......

    SAX解析原理:
    1)Sax解析工具(oracle-sun公司官方)

  • 4.4 什么是DOM解析
    DOM解析原理:xml解析器一次性把整個xml文檔加載進內(nèi)存减途,然后在內(nèi)存中構(gòu)建一顆Document的對象樹,通過Document對象曹洽,得到樹上的節(jié)點對象鳍置,通過節(jié)點對象訪問(操作)到xml文檔的內(nèi)容。

  • 4.5 Dom4j工具
    非官方送淆,不在jdk中税产。
    使用步驟:
    1)導入dom4j的核心包。 dom4j-1.6.1.jar
    2)編寫Dom4j讀取xml文件代碼

  • 4.6 Domj4讀取xml文件
    節(jié)點:
    Iterator Element.nodeIterator(); //獲取當前標簽節(jié)點下的所有子節(jié)點

              標簽:
                    Element  Document.getRootElement();  //獲取xml文檔的根標簽        
                   Element   ELement.element("標簽名") //指定名稱的第一個子標簽
                    Iterator<Element> Element.elementIterator("標簽名");// 指定名稱的所有子標簽
                      List<Element>    Element.elements(); //獲取所有子標簽
                      
              屬性:
                  String   Element.attributeValue("屬性名") //獲取指定名稱的屬性值
                   Attribute    Element.attribute("屬性名")坊夫;//獲取指定名稱的屬性對象    
                          Attribute.getName()  //獲取屬性名稱
                          Attibute.getValue()  //獲取屬性值
                      List<Attribute>  Element.attributes();  //獲取所有屬性對象
                      Iterator<Attribute>     Element.attibuteIterator(); //獲取所有屬性對象
    
              文本:
                          Element.getText();  //獲取當前標簽的文本
                          Element.elementText("標簽名") //獲取當前標簽的指定名稱的子標簽的文本內(nèi)容
              
      練習:
              把上午寫的聯(lián)系人的xml文件內(nèi)容砖第,使用dom4j完整地讀取并打印出來。
    

總結(jié):

            1)XML的作用
                 配置文件(最常見)
                 作為數(shù)據(jù)庫
            2)XML語法
            3)XML解析(DOM解析)
                 3.1 DOM解析原理
                 3.2 Dom4j工具(基于DOM解析) 
                        讀然吩洹:
                            節(jié)點
                                標簽節(jié)點
                                屬性節(jié)點
                                文本節(jié)點
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梧兼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子智听,更是在濱河造成了極大的恐慌羽杰,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件到推,死亡現(xiàn)場離奇詭異考赛,居然都是意外死亡,警方通過查閱死者的電腦和手機莉测,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門颜骤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捣卤,你說我怎么就攤上這事忍抽。” “怎么了董朝?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵鸠项,是天一觀的道長。 經(jīng)常有香客問我子姜,道長祟绊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮牧抽,結(jié)果婚禮上嘉熊,老公的妹妹穿的比我還像新娘。我一直安慰自己阎姥,他們只是感情好记舆,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呼巴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪御蒲。 梳的紋絲不亂的頭發(fā)上衣赶,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音厚满,去河邊找鬼府瞄。 笑死,一個胖子當著我的面吹牛碘箍,可吹牛的內(nèi)容都是我干的遵馆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼丰榴,長吁一口氣:“原來是場噩夢啊……” “哼货邓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起四濒,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤换况,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盗蟆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戈二,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年喳资,在試婚紗的時候發(fā)現(xiàn)自己被綠了觉吭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡仆邓,死狀恐怖鲜滩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宏赘,我是刑警寧澤绒北,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站察署,受9級特大地震影響闷游,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一脐往、第九天 我趴在偏房一處隱蔽的房頂上張望休吠。 院中可真熱鬧,春花似錦业簿、人聲如沸瘤礁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柜思。三九已至,卻和暖如春巷燥,著一層夾襖步出監(jiān)牢的瞬間赡盘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工缰揪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陨享,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓钝腺,卻偏偏與公主長得像抛姑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子艳狐,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1. XML總結(jié) 1.1. XML簡介 XML : 可擴展的標記語言定硝。(和HTML非常類似的) 可擴展的。 自定義...
    Ethan_Walker閱讀 3,039評論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理僵驰,服務(wù)發(fā)現(xiàn)喷斋,斷路器,智...
    卡卡羅2017閱讀 134,693評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法蒜茴,類相關(guān)的語法星爪,內(nèi)部類的語法,繼承相關(guān)的語法粉私,異常的語法顽腾,線程的語...
    子非魚_t_閱讀 31,660評論 18 399
  • 讓我 淹沒在 喧囂的人群里 就像 水消失在水里
    slcs閱讀 147評論 0 0
  • 安裝vmware虛擬機 1,將殺毒軟件關(guān)閉,講防火墻關(guān)閉, 殺毒軟件和防火墻會攔截 22端口.虛擬機需要連接開啟...
    蘇為閱讀 865評論 0 0