探究DOM API用法
本文向大家簡單介紹一下DOM API的概念,DOM API被定義為一系列CORBAIDL接口(請(qǐng)參見資源)。它用一個(gè)抽象樹來描述一個(gè)經(jīng)過語法分析的XML文檔。之所以說它是抽象的,這是因?yàn)橹挥羞@些接口反映出樹形的結(jié)構(gòu)。
開啟 DOM API 之門
XML是現(xiàn)在非常流行的數(shù)據(jù)表達(dá)格式,其特點(diǎn)是可移植、與平臺(tái)無關(guān)以及具有直接可讀的形式。DocumentObjectModel(DOM)是應(yīng)用程序存取XML數(shù)據(jù)的接口。不幸的是,DOM是一種相當(dāng)復(fù)雜的API,因而較難以迅速掌握。但是,如能知道所存取數(shù)據(jù)的DTD,這時(shí)就容易得多了。本文將通過若干簡單步驟,對(duì)如何利用Java版的DOM來存取XML數(shù)據(jù)進(jìn)行介紹。
可擴(kuò)展標(biāo)記語言(XML)已經(jīng)相當(dāng)普及,它是一種可移植的、與平臺(tái)無關(guān)的且直接可讀的數(shù)據(jù)格式。許多軟件廠商均已宣稱“支持XML”,這通常是指他們的軟件產(chǎn)品將生成或用到XML格式的數(shù)據(jù)。
XML也同樣被看作是企業(yè)間交流數(shù)據(jù)的通用格式。它允許企業(yè)在XML文檔類型定義(即DTD)的基礎(chǔ)上對(duì)所交流的數(shù)據(jù)取得一致。這些DTD文件獨(dú)立于企業(yè)中所使用的數(shù)據(jù)類型。
許多標(biāo)準(zhǔn)化組織正在致力于規(guī)范交流數(shù)據(jù)的DTD。其中一個(gè)例子就是國際出版通信委員會(huì)(請(qǐng)參見資源)已經(jīng)定義了一個(gè)XML的DTD,這個(gè)DTD可以使“所傳輸?shù)膸в袠?biāo)記的新聞信息能夠輕松地轉(zhuǎn)換為電子出版格式”。這些市場(chǎng)標(biāo)準(zhǔn)將使不同應(yīng)用程序之間能夠在未事先確定方式的情況下進(jìn)行數(shù)據(jù)的交換。
由W3C定義的XML規(guī)范(請(qǐng)參見資源)中規(guī)定了XML的語法和語義。一個(gè)XML文檔必須經(jīng)過語法分析才能被處理。如果每個(gè)程序都必須先對(duì)XML進(jìn)行語法分析再去處理,那將是非常困難的,因?yàn)榻o出這種語言的語法和語義是很復(fù)雜的。W3C已經(jīng)定義了文檔對(duì)象模型(DOM)(請(qǐng)參見資源)來解決這一問題。DOM是一個(gè)針對(duì)XML數(shù)據(jù)的應(yīng)用編程接口。大部分XML語法分析器都為所分析的XML生成一個(gè)DOM描述。
DOM標(biāo)準(zhǔn)
DOM API被定義為一系列CORBAIDL接口(請(qǐng)參見資源)。它用一個(gè)抽象樹來描述一個(gè)經(jīng)過語法分析的XML文檔。之所以說它是抽象的,這是因?yàn)橹挥羞@些接口反映出樹形的結(jié)構(gòu)。而用來實(shí)現(xiàn)抽象樹的實(shí)際數(shù)據(jù)結(jié)構(gòu)和算法不必是樹形結(jié)構(gòu)。
由于DOM API是以CORBAIDL形式規(guī)定的,所以它被許多編程語言所支持,包括Java語言。我們假定本文中使用標(biāo)準(zhǔn)的Java語言。DOM規(guī)范給出了詳細(xì)的基于Java接口。
DOM第一層規(guī)范是在1998年被采用的。它留下一些保留部分,以根據(jù)后來的實(shí)踐經(jīng)驗(yàn)來進(jìn)一步擴(kuò)充。DOM第二層規(guī)范在第一層的基礎(chǔ)上增加了對(duì)XML命名空間、文檔創(chuàng)建、視圖和式樣單等內(nèi)容的支持。第二層規(guī)范尚有待公眾評(píng)價(jià)。雖然從技術(shù)上而言還沒有最終完成,但是也已經(jīng)相當(dāng)穩(wěn)定。
對(duì)于一個(gè)XML文檔,許多XML語法分析器均可供Java程序使用,以生成DOM的第一層描述。因此,這里的代碼只假定為基于DOM的第一層子集。
【編輯推薦】
- 技術(shù)分享 如何獲取Dom元素的X/Y坐標(biāo)
- JQuery創(chuàng)建DOM元素方法解析
- JavaScript獲取HTML DOM節(jié)點(diǎn)元素詳解
- JavaScript和DOM輕松實(shí)現(xiàn)數(shù)據(jù)訪問
- HTML DOM與XML DOM的區(qū)別與聯(lián)系探究