文檔對象模型:處理結構化文檔

內容簡介

本書是使用W3C的標準化DOM接口處理XML和HTML文檔的實用嚮導。通過本書,我們可以學習DOM的概念、設計、原理和起源。利用DOM可以檢查、定位並操縱一個文檔的節點和內容。 並且,我們還可以學習利用DOM構建有用的應用程式,這種應用程式不用重新編碼就可以被輕鬆移植到任何兼容DOM的實現。在面臨操縱文檔內容、創建用戶界面以及將操作分散到客戶端處理等情況時,我們還可以從本書中獲取使用DOM的簡單實用的建議。本書可以為您提供一條學習的捷徑,使您的程式編寫標準化、幫助您學會重用代碼,並減少開發時間。

圖書目錄

第Ⅰ部分W3C文檔對象模型概述

第1章DOM簡介 1

1.1DOM的定義 1

1.2DOM的基本原理 2

1.2.1設計原理 3

1.2.2面向對象和DOM接口的平面視圖 3

1.3DOM的發展 3

1.3.1客戶端上的DOM 4

1.3.2伺服器上的DOM 4

1.4DOM的層 4

1.4.1Level1 5

1.4.2Level2 5

1.4.3Level3 6

1.5DOM規範中使用的約定 6

1.6DOM不是什麼 8

1.7小結 8

第2章DOM表示結構化文檔的方式 9

2.1基本的DOM數據類型 9

2.1.1DOMString類型 9

2.1.2DOMTimeStamp類型 10

2.1.3處理錯誤:DOMException接口 10

2.2文檔樹結構 10

2.3DOM節點類型 12

2.4基礎的CoreDOM接口 13

2.4.1DOMException代碼 14

2.4.2DOMNode接口 15

2.4.3節點輔助程式接口:NodeList和NamedNodeMap 18

2.4.4DOMImplementation接口 20

2.4.5Document接口 21

2.4.6DocumentFragment接口 23

2.4.7Element接口 23

2.4.8Attr接口 26

2.4.9CharacterData接口 26

2.4.10Comment接口 27

2.4.11Text接口 28

2.5ExtendedCore接口 28

2.5.1CDATASection接口 28

2.5.2DocumentType接口 29

2.5.3Notation接口 29

2.5.4實體接口 30

2.5.5EntityReference接口 30

2.5.6ProcessingInstruction接口 30

2.6小結 31

第3章導航和處理結構化文檔 32

3.1處理節點 32

3.1.1命名空間 33

3.1.2獲得對節點的對象引用 33

3.1.3檢查節點 34

3.1.4處理節點 37

3.1.5創建新節點 41

3.1.6從其他文檔中導入節點 43

3.2遍歷文檔 45

3.2.1使用Node接口屬性 45

3.2.2使用DOMLevel2Traversal模組 46

3.3小結 58

第Ⅱ部分實際操作中的DOM

第4章算法 59

4.1DOM算法 59

4.2基本的節點遍歷算法 59

4.3基於位置的算法 61

4.3.1確定節點是否具有一種給定類型的祖先節點 61

4.3.2確定節點是否具有給定類型的兄弟節點 63

4.4基於內容的算法 63

4.4.1確定一個節點是否包含另一個節點 63

4.4.2更好的Node接口版本:按照類型檢索相關節點 65

4.4.3按照屬性值尋找節點 66

4.5小結 68

第5章瀏覽器 69

5.1主要瀏覽器中的DOM支持 69

5.1.1MicrosoftInternetExplorer6 70

5.1.2NetscapeNavigator6.x 70

5.1.3Opera6 70

5.2在瀏覽器環境中使用DOM 70

5.2.1獲得對文檔的引用 71

5.2.2檢查頁面的結構和內容 72

5.2.3創建和修改頁面元素 75

5.2.4使用DOMLevel2Events接口處理事件 80

5.3InternetExplorer的特有方法和屬性 89

5.3.1InternetExplorer的特有屬性 89

5.3.2InternetExplorer特有的方法 90

5.4瀏覽器特別之處 91

5.4.1InternetExplorer 91

5.4.2NetscapeNavigator 91

5.5小結 92

第6章應用程式 93

6.1DOM實現不僅限於瀏覽器 93

6.2獨立的DOM實現和嵌入式DOM實現 93

6.3ApacheXerces分析程式 94

6.3.1怎樣獲取Xerces 94

6.3.2安裝Xerces 95

6.3.3逐步了解API 97

6.3.4使用Xerces 98

6.3.5如何獲取Xerces的更多信息 107

6.4MicrosoftMSXML分析程式 107

6.4.1如何獲取MSXML4 107

6.4.2安裝MSXML4 107

6.4.3逐步了解API 107

6.4.4使用MSXML4 108

6.4.5如何獲取關於MSXML的更多信息 112

6.5MacromediaDreamweaver 113

6.5.1如何獲取Dreamweaver 113

6.5.2Dreamweaver中的DOM 113

6.5.3逐步了解API 113

6.5.4使用DreamweaverDOM 115

6.5.5如何獲取DreamweaverDOM的更多信息 119

6.6小結 119

第7章調試DOM應用程式 120

7.1良好的調試技術的重要性 120

7.2保持自信:使用Assert()方法 121

7.2.1定義ASSERT()方法 121

7.2.2有效地使用ASSERT()宏 122

7.2.3充滿想像地運用ASSERT() 125

7.3TraceConsole的使用 127

7.3.1使用TraceConsole 128

7.3.2TraceConsole函式 129

7.4DOMDumper 138

7.4.1DOMDumper輸出結果 138

7.4.2DOMDumper代碼 139

7.4.3使用DOMDumper 143

7.5小結 144

第Ⅲ部分DOM的實際套用

第8章提供自動文檔定位 146

8.1使用DOM提供更好的文檔定位 146

8.2示例:動態書籤 147

8.2.1設定 150

8.2.2創建用戶界面元素 150

8.2.3建立書籤列表 151

8.2.4把書籤列表插入文檔 152

8.2.5回響用戶的書籤選擇 152

8.3示例:自動生成目錄 153

8.3.1設定 156

8.3.2掃描文檔的節點 156

8.3.3建立TOC目標 157

8.3.4添加TOC條目 158

8.4示例:文檔占位符 159

8.4.1設定 161

8.4.2處理單擊事件 162

8.4.3發現包含段落節點 163

8.5小結 163

第9章動態用戶界面 164

9.1用DOM創建動態用戶界面 164

9.2創建一個顏色拾取器 164

9.3現場列表編輯 171

9.4基於DOM的彈出式選單 177

9.5小結 183

第10章數據驅動型文檔的客戶端處理 184

10.1在客戶端處理數據驅動型文檔 184

10.2客戶端排序 184

10.2.1對列表進行排序 185

10.2.2對表進行排序 189

10.3伺服器端生成文檔的後處理 195

10.4處理Web頁面中的嵌入式XML數據 199

10.4.1InternetExplorer中的數據島 200

10.4.2NetscapeNavigator中的數據島 203

10.5示例:Joe'sCaféMenu應用程式 205

10.5.1選單頁面 205

10.5.2選單的XML代碼 207

10.5.3生成選單的HTML文檔 209

10.5.4處理用戶互動 216

10.6小結 220

第11章DOM未來的發展方向 221

11.1DOM的發展方向 221

11.2DOMLevel3中已被提議的修改 222

11.2.1一般性修改 222

11.2.2抽象模式支持 225

11.2.3錯誤處理 225

11.2.4載入和保存DOM文檔 226

11.2.5把應用程式指定的數據添加給節點 229

11.2.6判斷節點的相對文檔位置 231

11.2.7對XPath的支持 232

11.3DOM有待增強的其他功能 238

11.3.1DOM對XSLT的支持 238

11.3.2面向事務的處理 243

11.4小結 245

附錄ADOMCoreLevel1API參考 246

A.1DOM接口繼承樹 246

A.2Attr接口 246

A.2.1屬性 247

A.2.2方法 247

A.3CDATA接口 247

A.3.1屬性 247

A.3.2方法 247

A.4CharacterData接口 247

A.4.1屬性 248

A.4.2方法 248

A.5Comment接口 250

A.5.1屬性 250

A.5.2方法 250

A.6Document接口 250

A.6.1屬性 250

A.6.2方法 251

A.7DocumentFragment接口 253

A.7.1屬性 253

A.7.2方法 254

A.8DocumentType接口 254

A.8.1屬性 254

A.8.2方法 254

A.9DOMImplementation接口 254

A.9.1屬性 255

A.9.2方法 255

A.10DOMException接口 255

A.10.1常量 255

A.10.2屬性 255

A.10.3方法 256

A.11Element接口 256

A.11.1屬性 256

A.11.2方法 256

A.12Entity接口 258

A.12.1屬性 258

A.12.2方法 259

A.13EntityReference接口 259

A.13.1屬性 259

A.13.2方法 259

A.14NamedNodeMap接口 259

A.14.1屬性 259

A.14.2方法 260

A.15Node接口 261

A.15.1常量 261

A.15.2屬性 261

A.15.3方法 263

A.16NodeList接口 265

A.16.1屬性 265

A.16.2方法 265

A.17Notation接口 266

A.17.1屬性 266

A.17.2方法 266

A.18ProcessingInstruction接口 266

A.18.1屬性 266

A.18.2方法 267

A.19Text接口 267

A.19.1屬性 267

A.19.2方法 267

相關詞條

熱門詞條

聯絡我們