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