中文JAVA技術(shù)平等自由協(xié)作創(chuàng)造

          Java專題文章博客和開源

          導(dǎo)航

          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿(2)

          隨筆檔案

          閱讀排行榜

          評(píng)論排行榜

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          Java中解析XML的四種方法

            XML現(xiàn)在已經(jīng)成為一種通用的數(shù)據(jù)交換格式,它的平臺(tái)無關(guān)性,語言無關(guān)性,系統(tǒng)無關(guān)性,給數(shù)據(jù)集成與交互帶來了極大的方便。對于XML本身的語法知識(shí)與技術(shù)細(xì)節(jié),需要閱讀相關(guān)的技術(shù)文獻(xiàn),這里面包括的內(nèi)容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transformations。
           
             package com.alisoft.facepay.framework.bean;
           
             /**
           
             *
           
             * @author hongliang.dinghl
           
             * 定義XML文檔建立與解析的接口
           
             */
           
             public interface XmlDocument {
           
             /**
           
             * 建立XML文檔
           
             * @param fileName 文件全路徑名稱
           
             */
           
             public void createXml(String fileName);
           
             /**
           
             * 解析XML文檔
           
             * @param fileName 文件全路徑名稱
           
             */
           
             public void parserXml(String fileName);
           
             }
           
             XML在不同的語言里解析方式都是一樣的,只不過實(shí)現(xiàn)的語法不同而已。基本的解析方式有兩種,一種叫SAX,另一種叫DOM。SAX是基于事件流的解析,DOM是基于XML文檔樹結(jié)構(gòu)的解析。假設(shè)我們XML的內(nèi)容和結(jié)構(gòu)如下:托福答案
           
             <?xml version="1.0" encoding="UTF-8"?>
           
             <employees>
           
             <employee>
           
             <name>ddviplinux</name>
           
             <sex>m</sex>
           
             <age>30</age>
           
             </employee>
           
             </employees>
           
             1.DOM生成和解析XML文檔
           
             為XML文檔的已解析版本定義了一組接口。解析器讀入整個(gè)文檔,然后構(gòu)建一個(gè)駐留內(nèi)存的樹結(jié)構(gòu),然后代碼就可以使用 DOM 接口來操作這個(gè)樹結(jié)構(gòu)。優(yōu)點(diǎn):整個(gè)文檔樹在內(nèi)存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點(diǎn):將整個(gè)文檔調(diào)入內(nèi)存(包括無用的節(jié)點(diǎn)),浪費(fèi)時(shí)間和空間;使用場合:一旦解析了文檔還需多次訪問這些數(shù)據(jù);硬件資源充足(內(nèi)存、CPU)。
           
             2.SAX生成和解析XML文檔
           
             為解決DOM的問題,出現(xiàn)了SAX。SAX ,事件驅(qū)動(dòng)。當(dāng)解析器發(fā)現(xiàn)元素開始、元素結(jié)束、文本、文檔的開始或結(jié)束等時(shí),發(fā)送事件,程序員編寫響應(yīng)這些事件的代碼,保存數(shù)據(jù)。優(yōu)點(diǎn):不用事先調(diào)入整個(gè)文檔,占用資源少;SAX解析器代碼比DOM解析器代碼小,適于Applet,下載。缺點(diǎn):不是持久的;事件過后,若沒保存數(shù)據(jù),那么數(shù)據(jù)就丟了;無狀態(tài)性;從事件中只能得到文本,但不知該文本屬于哪個(gè)元素;使用場合:Applet;只需XML文檔的少量內(nèi)容,很少回頭訪問;機(jī)器內(nèi)存少。托福答案
           
             3.DOM4J生成和解析XML文檔
           
             DOM4J 是一個(gè)非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時(shí)它也是一個(gè)開放源代碼的軟件。如今你可以看到越來越多的 Java 軟件都在使用 DOM4J 來讀寫 XML,特別值得一提的是連 Sun 的 JAXM 也在用 DOM4J。
           
             4.JDOM生成和解析XML
           
             為減少DOM、SAX的編碼量,出現(xiàn)了JDOM;優(yōu)點(diǎn):20-80原則,極大減少了代碼量。使用場合:要實(shí)現(xiàn)的功能簡單,如解析、創(chuàng)建等,但在底層,JDOM還是使用SAX(最常用)、DOM、Xanan文檔。
           
           

          posted on 2013-09-22 23:19 好不容易 閱讀(158) 評(píng)論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          PK10開獎(jiǎng) PK10開獎(jiǎng)
          主站蜘蛛池模板: 武功县| 潢川县| 饶阳县| 河南省| 焉耆| 桂东县| 石嘴山市| 青川县| 黑水县| 灵丘县| 潍坊市| 海门市| 靖江市| 原平市| 乌兰浩特市| 祁阳县| 宣恩县| 启东市| 固安县| 武川县| 景宁| 德兴市| 论坛| 玉林市| 民和| 凭祥市| 拜泉县| 寿光市| 永川市| 阜南县| 九龙坡区| 岗巴县| 建昌县| 句容市| 湖北省| 常德市| 华蓥市| 内黄县| 登封市| 灌南县| 通榆县|