xml中DOM物件的學習

2021-08-30 18:09:49 字數 3012 閱讀 4477

dom的基本物件有5個:document,node,nodelist,element和attr。

下面就這些物件的功能和實現的方法作乙個大致的介紹

document物件代表了整個xml的文件,所有其它的node,都以一定的順序包含在document物件之內,

排列成乙個樹形的結構,程式設計師可以通過遍歷這顆樹來得到xml文件的所有的內容,這也是對xml文

檔操作的起點。我們總是先通過解析xml原始檔而得到乙個document物件,然後再來執行後續的操

作。此外,document還包含了建立其它節點的方法,比如createattribut()用來建立乙個attr物件。

它所包含的主要的方法有:

createattribute(string):

用給定的屬性名建立乙個attr物件,並可在其後使用

setattributenode

方法來放置在某乙個element物件上面。

createelement(string):

用給定的標籤名建立乙個element物件,代表xml文件中的乙個標籤,然後就可以在這個element物件

上新增屬性或進行其它的操作。

createtextnode(string):

用給定的字串建立乙個text物件,text物件代表了標籤或者屬性中所包含的純文字字串。如果在

乙個標籤內沒有其它的標籤,那麼標籤內的文字所代表的text物件是這個element物件的唯一子物件。

getelementsbytagname(string):

返回乙個nodelist物件,它包含了所有給定標籤名字的標籤。

getdocumentelement():

返回乙個代表這個dom樹的根節點的element物件,也就是代表xml文件根元素的那個物件。

node物件是dom結構中最為基本的物件,代表了文件樹中的乙個抽象的節點。在實際使用的時候,很少

會真正的用到node這個物件,而是用到諸如element、attr、text等node物件的子物件來操作文件。

node物件為這些物件提供了乙個抽象的、公共的根。雖然在node物件中定義了對其子節點進行訪問的方

法,但是有一些node子物件,比如text物件,它並不存在子節點,這一點是要注意的。

node物件所包含的主要的方法有:

為這個節點新增乙個子節點,並放在所有子節點的最後,如果這個子節點已經存在,則先把它刪掉再新增進去。

getfirstchild():

如果節點存在子節點,則返回第乙個子節點,對等的,還有getlastchild()方法返回最後乙個子節點。

getnextsibling():

返回在dom樹中這個節點的下乙個兄弟節點,對等的,還有getprevioussibling()方法返回其前乙個兄弟節點。

getnodename():

根據節點的型別返回節點的名稱。

getnodetype():

返回節點的型別。

getnodevalue():

返回節點的值。

haschildnodes():

判斷是不是存在有子節點。

hasattributes():

判斷這個節點是否存在有屬性。

getownerdocument():

返回節點所處的document物件。

insertbefore(org.w3c.dom.node new,org.w3c.dom.node ref):

在給定的乙個子物件前再插入乙個子物件。

removechild(org.w3c.dom.node):

刪除給定的子節點物件。

replacechild(org.w3c.dom.node new,org.w3c.dom.node old):

用乙個新的node物件代替給定的子節點物件。

nodelist物件,顧名思義,就是代表了乙個包含了乙個或者多個node的列表。可以簡單的把它看成

乙個node的陣列,我們可以通過方法來獲得列表中的元素:

getlength():

返回列表的長度。

item(int):

返回指定位置的node物件。

element物件代表的是xml文件中的標籤元素,繼承於node,亦是node的最主要的子物件。在標籤中

可以包含有屬性,因而element物件中有訪問其屬性的方法,而任何node中定義的方法,

也可以用在element物件上面。

getelementsbytagname(string):

返回乙個nodelist物件,它包含了在這個標籤中其下的子孫節點中具有給定標籤名字的標籤。

gettagname():

返回乙個代表這個標籤名字的字串。

getattribute(string):

返回標籤中給定屬性名稱的屬性的值。在這兒需要主要的是,應為xml文件中允許有實體屬性出現,

而這個方法對這些實體屬性並不適用。這時候需要用到getattributenodes()方法來得到乙個attr物件來進行進一步的操作。

getattributenode(string):

返回乙個代表給定屬性名稱的attr物件。

attr物件代表了某個標籤中的屬性。attr繼承於node,但是因為attr實際上是包含在element中的,

它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,

所以node中的getparentnode(),getprevioussibling()和getnextsibling()返回的都將是null。

也就是說,attr其實是被看作包含它的element物件的一部分,它並不作為dom樹中單獨的乙個節點出現。

這一點在使用的時候要同其它的node子物件相區別。

需要說明的是,上面所說的dom物件在dom中都是用介面定義的,在定義的時候使用的是與具體語言

無關的idl語言來定義的。因而,dom其實可以在任何物件導向的語言中實現,只要它實現了dom所定

義的介面和功能就可以了。同時,有些方法在dom中並沒有定義,是用idl的屬性來表達的,當被映

射到具體的語言時,這些屬性被對映為相應的方法

JS中的DOM物件

主要是操作html 內容 dom document object model w3c api標準 是w3c組織推薦的處理可擴充套件置標語言的標準程式設計介面。它是一種與平台和語言無關的應用程式介面 api 它可以動態地訪問程式和指令碼,更新其內容 結構和www文件的風格 目前,html和xml文件是...

xml學習筆記! DOM的基本操作

xml學習筆記!c 初學xml,邊學邊作點筆記吧!1.選中特定結點的方法 xmldocument mydoc new xmldocument mydoc.load xpath message.text mydoc.selectsinglenode person name tim daly child...

JAVA中xml與dom解析

xml現在已經成為一種通用的資料交換格式,它的平台無關性,語言無關性,系統無關性,給資料整合與互動帶來了極大的方便。對於xml本身的語法知識與技術細節,需要閱讀相關的技術文獻,這裡面包括的內容有dom document object model dtd document type definitio...