NodeList對象,顧名思義,就是代表了一個包含了一個或者多個Node的列表。可以簡單的把它看成一個Node的數(shù)組,我們可以通過方法來獲得列表中的元素:
GetLength():返回列表的長度。
Item(int):返回指定位置的Node對象。
Element對象代表的是XML文檔中的標(biāo)簽元素,繼承于Node,亦是Node的最主要的子對象。在標(biāo)簽中可以包含有屬性,因而Element對象中有存取其屬性的方法,而任何Node中定義的方法,也可以用在Element對象上面。
getElementsByTagName(String):返回一個NodeList對象,它包含了在這個標(biāo)簽中其下的子孫節(jié)點(diǎn)中具有給定標(biāo)簽名字的標(biāo)簽。
getTagName():返回一個代表這個標(biāo)簽名字的字符串。
getAttribute(String):返回標(biāo)簽中給定屬性名稱的屬性的值。在這兒需要主要的是,應(yīng)為XML文檔中允許有實(shí)體屬性出現(xiàn),而這個方法對這些實(shí)體屬性并不適用。這時候需要用到getAttributeNodes()方法來得到一個Attr對象來進(jìn)行進(jìn)一步的操作。
getAttributeNode(String):返回一個代表給定屬性名稱的Attr對象。
Attr對象代表了某個標(biāo)簽中的屬性。Attr繼承于Node,但是因?yàn)锳ttr實(shí)際上是包含在Element中的,它并不能被看作是Element的子對象,因而在DOM中Attr并不是DOM樹的一部分,所以Node中的getparentNode(),getpreviousSibling()和getnextSibling()返回的都將是null。也就是說,Attr其實(shí)是被看作包含它的Element對象的一部分,它并不作為DOM樹中單獨(dú)的一個節(jié)點(diǎn)出現(xiàn)。這一點(diǎn)在使用的時候要同其它的Node子對象相區(qū)別。
需要說明的是,上面所說的DOM對象在DOM中都是用接口定義的,在定義的時候使用的是與具體語言無關(guān)的IDL語言來定義的。因而,DOM其實(shí)可以在任何面向?qū)ο蟮恼Z言中實(shí)現(xiàn),只要它實(shí)現(xiàn)了DOM所定義的接口和功能就可以了。同時,有些方法在DOM中并沒有定義,是用IDL的屬性來表達(dá)的,當(dāng)被映射到具體的語言時,這些屬性被映射為相應(yīng)的方法。
2.DOM實(shí)例
有了上面的介紹,相信你對DOM理解的更多了吧。下面的例子將讓你對DOM更加熟悉起來。
先說說這個例子到底要做的是什么吧,我們希望在一個名為link.xml文件中保存了一些URL地址,通過一個簡單的程序,我們可以通過DOM把這些URL讀出并顯示出來,也可以反過來向這個XML文件中寫入加入的URL地址。很簡單,卻很實(shí)用,也足夠來例示DOM的絕大部分用法了。
XML文件本身不復(fù)雜,就不給出它的DTD了。link.xml:
JSP Insider
http://www.jspinsider.com
JSP Insider
2
1
2001
A JSP information site.
The makers of Java
http://java.sun.com
Sun Microsystems
3
1
2001
Sun Microsystem's website.
The standard JSP container
http://jakarta.apache.org
Apache Group
4
1
2001
Some great software.
第一個程序我們稱為xmldisplay.java,具體的程序清單可以在附件中找到。主要的功能就是讀取這個XML文件中各個節(jié)點(diǎn)的內(nèi)容,然后在格式化輸出在System.out上,我們來看看這個程序:
import javax.xml.parsers.*;
import org.w3c.dom.*;
相關(guān)推薦:計(jì)算機(jī)等級考試二級Java經(jīng)典算法大全匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |