java與xml聯合程式設計之DOM篇(2)

2021-08-27 15:36:55 字數 2123 閱讀 8761

· dom詳解

1.基本的dom物件

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()方法返回最後乙個子節點。

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物件。

資料引用:

LabVIEW與MATLAB聯合程式設計

labview與matlab的聯合程式設計一般可以通過2種方式進行 1.公式節點 formula node 2.matlab指令碼節點 matlab script node 1.公式節點 formula node 位置 函式選板 數學 指令碼與公式 公式節點 在程式框圖上計算數學公式和類似於c語言的...

c 與python聯合程式設計一

前段時間做過c 呼叫python程式及其深度學習模型。最近想做個介面程式,將c 和python的處理結果呈現再從c 介面上。於是採用將c 程式 包括呼叫python的模組 全部寫成dll動態庫檔案。呼叫時候發現程式找不到對應的py檔案,除錯了好幾天。發現就算引用py檔案的絕對路徑也不行。錯誤程式及其...

Oracle資料庫程式設計之Float與Double

關於float與double的問題網上有很多我就不再重複地講它們之間的區別,著重講一下在用的時候自己用到的問題和解決方法 1 因為float的精度很不好控制,比如你在定義欄位時用到的是float 10 當把1.1111存入的時候實際儲存的為1.111,但當存入11.111時,實際顯示為11.11.2...