在DOM 中,我們將代表XML 文件的程序設計對象,稱為節點(nodes)。當Internet Explorer 5 處理被鏈接的XML 文件并儲存于DOM 中時,它會為XML 文件的每一個基本組件建立一個節點。這些基本組件包括了元素、屬性,與處理指令DOM 會使用不同形態的節點來代表不同形態的XML 組件。例如,元素是儲存在Element 節點中,而屬性則是儲存在Attribute 節點中。表格9-1 列出了這些節點類型最重要的部分。 [page_break]Inventory Dom.xml lt;?xml version="1.0"?> lt;!--File Name:Inventory Dom.xml --> lt;INVENTORY> lt;BOOK Binding="mass market paperback"> lt;TITLE> The Adventures of Huckleberry Finn lt;AUTHOR Born="1835"> Mark Twain lt;PAGES> 298 lt;PRICE> $5.49 lt;/BOOK> lt;BOOK Binding="trade paperback"> lt;TITLE> The Marble Faun lt;AUTHOR Born="1804"> Nathaniel Hawthorne lt;PAGES> 473 lt;PRICE> $10.95 lt;/BOOK> lt;BOOK Binding="hardcover"> lt;TITLE> Moby-Dick lt;AUTHOR Born="1819"> Herman Melville lt;PAGES> 724 lt;PRICE> $9.95 lt;/BOOK> lt;/INVENTORY> 每個節點,就像可程序化的對象,提供了屬性和方法,讓你可以存取、顯示、管理,和取得對應到XML 組件上的信息。例如,nodeName 和nodeValue 屬性(表9-1 所示)提供了元素的名稱及內含值。 所有形態的節點共同分享一組公共的屬性與方法。這些屬性與方法一般是設計來偕同節點一起運作。表格9-2 列出了一些比較有用的共同屬性。在本章稍后你將獲得有關這些屬性的更多信息及范例。 屬性 描述 范例 attributes 該節點的所有非屬性的子節點的NamedNodeMap 集合 AttributeNode =Element.attributes.getNamedItem ("Binding"); childNodes 該節點的所有非屬性的子節點的NodeList 集合 FirstNode =Element.childNodes (0); dataType 該節點的數據類型(只適用于某些類型Attribute 節點) AttributeType =Attribute.dataType; firstChild 該節點的第一個非屬性的子節點 FirstChildNode =Element.firstChild; lastChild 該節點的最后一個非屬性的子節點 LastChildNode =Element.lastChild; nextSibling 與本節點位于同一層級的后繼前一節點 NextElement =Element.nextSibling; nodeName 節點的名稱 ElementName =Element.nodeName; nodeType 表示該節點類型的數值碼 NodeTypeCode =Node.nodeType; nodeTypeString 包含該節點類型的字符串,以小寫字母撰寫(例如,"element"或"attribute") NodeTypeString=Node.nodeTypeString; nodeValue 該節點的值(如果不含值則為null) AttributeValue =Attribute.nodeValue; ownerDocument 包含本節點的文件的根Document 節點 Document =Node.ownerDocument; parentNode 該節點的父節點(并不適用于Attribute 節點) ParentElement =Element.parentNode; previousSibling 與本節點位于同一層級的先前節點 PreviousElement =Element.previousSibling; text 該節點與其后裔節點的全部文字內容 AllCharacterData =Element.text; xml 該節點與其后裔節點的全部XML 內容 XMLContent =Element.xml; 提示 有關屬于不同形態節點對象的所有屬性、方法,與事件的詳細敘述,請參閱由MSDN 所提供的信息,網址為 http://msdn.microsoft.com/xml/reference/scriptref/xmldom_Objects.asp 。注意在該網頁中,前置字符串XMLDOM 作為表格9-1 中每個節點名稱的開端-例如,XMLDOMDocument、XMLDOMElement 與XMLDOMText.(這些是每個節點形態的程序接口的名稱。) 也注意共同的節點屬性和方法被列于XMLDOMNode 的后面。 除了共同的屬性和方法外,每種類型的節點都提供了附加的屬性和方法,來處理該節點類型所代表的特殊XML 組件。例如,文件節點(Document node)提供了parseError 屬性,內含任何處理文件時所產生錯誤的相關信息。只有文件節點擁有這種屬性。在本章稍后,你將看到一份描述某些節點類型的有用節點特殊屬性和方法的表格。 提示 如果某個屬性不適用于特定節點,則該屬性將包含null 值。例如,如果某節點代表一個不包含任何屬性的XML 文件(如Document 或Comment node)時,其attributes 屬性將被設為null。如果某節點代表某個不含有任何數據類型(只有某些屬性擁有數據類型)的XML 組件時,該節點的dataType 屬性將被設為null。如果節點并沒有任何非屬性的子節點,其firstChild 屬性將為null。而如果節點為不含值的類型(如Document 或Element node),其nodeValue 屬性將被設為null。 注意,表格9-2 中,每個節點擁有一組屬性,讓你可以瀏覽節點的階層架構,來從目前節點存取其它節點的資料。例如,在列表9-1 中的文件,如變量Document 包含了文件的根Document節點,后續的程序代碼將會顯示最接近文件起始部分批注的內容,而DOM 會將批注內容儲存在Document 節點的第二個子節點中。 alert (Document.childNodes(1).nodeValue); 這行程序代碼將會顯示一個消息框,內含文字「File Name: In-ventory Dom.xml」。透過XML data island 取得DSO 的XMLDocument 成員對象,來存取根Document 節點。此Document 節點被視為存取XML 文件的網關(gateway)。 你使用該節點來存取其它的節點。 |
溫馨提示:喜歡本站的話,請收藏一下本站!