曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
1. DOM Level 1
W3C DOM Level 1文檔處于建議的狀態。這意味著W 3 C已經審閱過它,接受了成員對它的
注釋,并且經過修訂,正在將它提升為W W W的標準。h t t p : / / w w w. w 3 . o rg / T R / R E C - D O M - L e v e l -
1 /提供了建議的完整文本。
Level 1文檔包含兩個主要部分。第一部分,文檔對象模型(核心) Level 1定義了用于訪問
任何結構化文檔的接口,以及用于訪問X M L文檔的特殊擴展。文檔的第二部分描述了D O M針對
H T M L的擴展,它超出了本書的討論范圍。
D O M規范通過定義數據類型D O M S t r i n g描述了D O M如何操作字符串。該數據類型定義為雙
字節字符集,采用U T F - 1 6編碼機制進行編碼。對于特定的實現,接口通常被綁定到也采用U T F -
1 6編碼的系統數據類型,例如: J a v a的S t r i n g類型。
下面讓我們來看看構成DOM Level 1規范的對象、方法和屬性。需要注意的是,其中描述的
行為僅僅適用于X M L文檔;當用于訪問H T M L文檔時,D O M將有不同的行為。
圖5 - 4顯示了構成D O M的對象類層次:
圖5-4
第5章文檔對象模型使用115 下載
附錄B提供了D O M對象的完整文檔。
2. DOM Level 2
在編寫本書時, W3C DOM Level 2規范正處于候選建議的狀態。這意味著直接負責該規范
的技術團體已經對它進行了重要的審閱,現在它需要的是真正的實現,以及來自W 3 C之外各方
面的技術反饋。Level 2規范不僅包含上述所有對象,而且新增了以下特征:
• 支持命名空間—正如我們將在第7章中看到的,命名空間用于區分X M L中具有相同名稱
的離散數據元素。它們通常提供返回原始的X M L結構文件的鏈接,該文件包含某種格式的
元素信息。DOM Level 2將提供查詢和修改文檔命名空間的機制。
• 樣式表—DOM Level 2包含樣式表的對象模型,以及用于查詢和操作特定文檔的樣式表
的方法。
• 過濾—DOM Level 2新增了用于過濾X M L文檔內容的方法。
• 事件模型—DOM Level 2計劃提供X M L的事件模型。
• 范圍(R a n g e)—DOM Level 2包含用于操作大塊文本的函數,它有助于在X M L中處理
傳統的文檔。
h t t p : / / w w w. w 3 . o rg / T R / D O M - L e v e l - 2 /提供了DOM Level 2規范的W 3 C候選建議的完整文本。
3. 理解I D L和綁定
閱讀D O M規范時,許多開發人員有可能對接口定義的方式感到陌生。記住, W 3 C將D O M定
位為獨立于平臺的,即: W 3 C指定了特定系統的實現需要提供哪些方法和屬性,但沒有詳細說
明如何獲得這些實現。為此, W 3 C選擇通過以下幾種方式表達與D O M的接口:通過OMG IDL
(它是CORBA 2.2規范的一部分),或者通過J a v a和E C M A S c r i p t相結合。當開發人員使用非W 3 C
規范的D O M實現應用程序時,應該參考隨類庫一起提供的特定實現的文檔。例如, M i c r o s o f t在
h t t p : / / m s d n . m i c r o s o f t . c o m / x m l / r e f e r e n c e / x m l d o m / s t a r t . a s p提供了他們實現的XML DOM的文檔。
5.1.4 現實世界中的DOM
到目前為止,我們已經從純理論角度介紹了D O M—我們從W 3 C通用建議的角度討論了
D O M。下面,看看D O M在現實世界是如何實現的。
當前瀏覽器中的D O M
在編寫本書時,只有Internet Explorer 5內置了D O M類庫,并且支持X S L。客戶端代碼可以
引用頁面中的數據島—內嵌在H T M L文檔中的X M L 文檔— 通過文檔中數據島對象的
X M L D o c u m e n t屬性能夠獲得該引用,同時通過該引用能夠調用M i c r o s o f t類庫支持的所有功能。
這些類庫支持DOM Level 1規范定義的全部功能,另外,它提供的擴展函數能夠簡化X M L數據
訪問,并操作X S L樣式表。
N e t s c a p e尚未提供對D O M的內置訪問(至少到4 . 7版為止是這種情況),但是如果你有一組
A c t i v e X或Java DOM類庫,就能夠在客戶端利用J a v a或J a v a S c r i p t對X M L文檔進行訪問和操作。
需要注意的是,在訪問X M L文檔之前,你的客戶端需要下載并安裝這些類庫。現在正在開發的
N e t s c a p e的下一版本將內置對X M L和X S L的支持。
M i c r o s o f t實現的A c t i v e X和J a v a類庫形式的D O M可以從地址h t t p : / / m s d n . m i c r o s o f t . c o m /
116使用XML 高級編程
下載
d o w n l o a d s / t o o l s / x m l p a r s e r / x m l p a r s e r. a s p免費下載。
判斷瀏覽器類型
除非你能夠控制應用程序的目標瀏覽器(例如:你正在為公司開發I n t r a n e t應用程序,并且
公司要求使用Internet Explorer),否則保證代碼在各種瀏覽器上的通用性是至關重要的。為了實
現這一目標,同時不以犧牲程序的功能為代價,你的代碼應該在要執行特定瀏覽器才具備的功
能之前查詢瀏覽器的類型。
讓我們看下面的例子,它是用J a v a S c r i p t編寫的。你可以將這個代碼片段包含在你的We b站
點的缺省頁面中:
程序清單5 - 4
以上代碼通過檢查導航( n a v i g a t o r)對象的u s e r A g e n t屬性,判斷用于訪問頁面的瀏覽器的
類型。只有M i c r o s o f t的Internet Explorer 5.X在u s e r A g e n t屬性中內置了字符串“ MSIE 5”。通過
檢查屬性中是否包含該字符串,腳本能夠確定所用的瀏覽器是否是Internet Explorer 5,并根據
判斷的結果進行適當的重定向。例如,頁面d e f a u l t i e . h t m(專用于IE 5瀏覽器)中可能包含要使
用IE 5客戶端XML DOM 特征的J S c r i p t代碼,而頁面d e f a u l t n s . h t m(專用于非IE 5瀏覽器)可能
依賴于服務器端的表單處理實現相同的目的。注意,隨著新版本的出現,以上代碼可能要根據
各種瀏覽器客戶端傳遞的u s e r A g e n t字符串進行適當調整。
5.1.5 特殊的XML DOM實例—HTML DOM
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(49)