<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    FORTUNE

    THE WAY TO THE MASTER...
    posts - 49, comments - 18, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    關(guān)于dom4j

    Posted on 2006-03-20 20:08 fortune 閱讀(708) 評論(0)  編輯  收藏 所屬分類: java技術(shù)
    今天就簡單介紹一下處理XML文檔的常用東西,關(guān)于xml document的話,w3c的document結(jié)構(gòu)確實讓人感到頭痛,所以很多開發(fā)者都轉(zhuǎn)向使用其他的document對象。其中dom4j是一個成功的開源項目,從java的對象概念的角度出發(fā),按照通常的使用規(guī)范來處理xml文檔,可以說,在java社區(qū)里,dom4j使用的最為廣泛了,以下是dom4j的官方地址:http://www.dom4j.org/。如,眾所周知的o/r mapping工具h(yuǎn)ibernate就是使用dom4j來解釋xml文檔的(ejb3.0就是基于hibernate實現(xiàn)的),由此可見,dom4j的使用廣泛之處。dom4j的一個最大的實用之處是支持XPath表達(dá)式的查詢,這樣,我們可以在dom4j的Document結(jié)構(gòu)中使用這種簡單的表達(dá)式就可以快速找到我們需要的某個元素了。

    ????? 下載dom4j開發(fā)包:http://sourceforge.net/project/showfiles.php?group_id=16035。在前言我已說過,由于都采用了使用類似的發(fā)布框架,所以對程序員來說極為容易上手。下載完dom4j之后,在dom4j的docs/cookbook.html里有詳細(xì)的入門手冊,而在src/samples里面則是一些樣例,src/test文件夾里面是JUnit的測試?yán)印_@些東西都已經(jīng)很詳細(xì)的介紹了怎樣進(jìn)行入門介紹。這里,我打算小結(jié)一下dom4j的Document結(jié)構(gòu):

    ????? 首先,要明白的是dom4j是基于面向接口的樣式來實現(xiàn)處理xml文檔的,這種方法在面向?qū)ο蟮念I(lǐng)域里特別常見。使用的常用接口都封裝在org.dom4j包里,而怎樣讀取xml文檔呢?則是使用一系列的api函數(shù),這些常用方法都封裝在org.dom4j.io。

    (1)從面向?qū)ο蟮慕嵌葋砜矗琩om4j對XML的文檔結(jié)構(gòu)進(jìn)行了封裝,從一個文檔的角度來說(我們不考慮內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)的話),可以簡單的把一個XML文檔就當(dāng)做一個org.dom4j.Document:

    ???????? 我們現(xiàn)在使用dom4j的Document結(jié)構(gòu),而不是使用w3c的Document結(jié)構(gòu),讀取一個文件,在內(nèi)存中構(gòu)造一個Document結(jié)構(gòu):Document doc=new SAXReader().read(new File("...")); 就可以獲得一個Document結(jié)構(gòu)。注意,dom4j同時也對w3c的Document結(jié)構(gòu),SAX Event的支持,具體的使用可以參看docs/cookbook.html中的內(nèi)容。這里不一一介紹。

    (2)獲得一個dom4j的Document結(jié)構(gòu)之后,從面向?qū)ο蟮慕嵌龋覀冏匀欢坏南肫鸬氖荴ML中的element,dom4j根據(jù)這種想法對這些進(jìn)行了封裝org.dom4j.Element類就是對這些進(jìn)行了封裝,從Document中獲得Element:

    ???????? 首先獲得一個root元素,Element root=doc.getRootElement();而其他的元素也可以根據(jù)這個root元素來獲得。

    (4)一個元素的屬性的話,則是Attribute,在Element類中,有非常容易操作的方法添加于獲得Attribute,addAttritue();attribute()等函數(shù)原型都提供了操作。

    (5)dom4j同時也提供了在內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)的構(gòu)造,不降低處理的靈活性。如:Node就是對一個xml文檔樹的節(jié)點的封裝,而Branch則是對一個樹的分支的封裝,通過使用這些,可以靈活的按照樹的結(jié)構(gòu)來處理xml文檔。敏感的朋友可能會注意到,Document和Element都是Node與Branch的子類,這種不同功能的領(lǐng)域的封裝可以按照對象的處理與數(shù)據(jù)結(jié)構(gòu)的結(jié)合,靈活的處理xml文檔。

    ???????? 以上是一點簡單的介紹入門dom4j的Document結(jié)構(gòu),詳細(xì)的請看docs/cookbook.html文件,里面太詳細(xì)了,:-)。

    主站蜘蛛池模板: 麻豆亚洲AV成人无码久久精品 | 毛片视频免费观看| 久久青青草原亚洲av无码app | 午夜精品免费在线观看| 亚洲成AV人片天堂网无码| 久久午夜夜伦鲁鲁片免费无码 | 成人永久福利免费观看| 亚洲乱妇熟女爽到高潮的片| 成人免费视频一区二区| 免费在线观看亚洲| 污污视频免费观看网站| 亚洲国产专区一区| 久久久久免费视频| 久久青青草原亚洲AV无码麻豆 | 免费黄色一级毛片| 亚洲国产精品无码专区| 精品免费tv久久久久久久| 色播亚洲视频在线观看| 国内精品乱码卡1卡2卡3免费| 亚洲成年网站在线观看| 国产免费午夜a无码v视频| 国产免费久久久久久无码| 亚洲乱亚洲乱妇无码麻豆| 中文无码亚洲精品字幕| 日本免费人成黄页在线观看视频 | 亚洲一区二区三区久久| 国产精品色午夜免费视频| 十八禁的黄污污免费网站| 亚洲va久久久噜噜噜久久狠狠 | 台湾一级毛片永久免费| 激情无码亚洲一区二区三区| 亚洲黄片手机免费观看| 污视频在线观看免费| 亚洲天然素人无码专区| 久久精品亚洲男人的天堂| 91av免费观看| 国产成人亚洲精品电影| 亚洲AV无码乱码国产麻豆穿越 | 亚洲成人国产精品| 精品无码国产污污污免费网站 | 亚洲人成自拍网站在线观看|